Vue.js简化es5的代码

发布于 2022-09-06 19:39:03 字数 626 浏览 11 评论 0

像这样的if判断代码在vue里面显得过于臃肿,该怎么优化if语句?

methods: {
  next() {
    if (this.cateDatas.caijing != '') {
      if(this.cateDatas.redian != '') {
        if(this.cateDatas.hangye != '') {
          if(this.cateDatas.youhui != '') {
            if(this.cateDatas.diyu != '') {
              this.id++;
            } else {
              alert("请选择地域信息!")
            }
          }  else {
            alert("请选择优惠政策!")
          }
        }  else {
          alert("请选择行业资讯!")
        }
      }  else {
        alert("请选择热点聚焦!")
      }
    } else {
      alert("请选择财经新闻!")
    }
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

灼疼热情 2022-09-13 19:39:03
//原始数据
const cateDatas = {
    caijing: '22',
    redian: ''
}
let id = 0;


//配置数据
const config = {
    caijing: '请输入财经新闻!',
    redian: '请输入热点聚焦!',
}

if (Object.keys(cateDatas).every(v => cateDatas[v] != '' ? true : alert(config[v]))) {
    id++;
}
春庭雪 2022-09-13 19:39:03

用return

if (this.cateDatas.caijing === '') {
    alert('请选择财经新闻')
    return
}
if (this.cateDatas.redian === '') {
    alert('请选择热点')
    return
}
...
this.id++
夏九 2022-09-13 19:39:03

一点儿想法,希望能对你有所帮助!

next(){
     var data_buff = {
         "caijing":"财经新闻",
         "redian":"热点聚焦",
         "hangye":"行业资讯",
         "youhui":"优惠政策",
         "diyu":"地域信息"
     };
     var flag = true; //决定是否进行id增加的标志
     for( k in data_buff ){
        if(this.cateDatas[k] == '') {
            flag = false;                
            alert("请选择" + data_buff[k] + "!");
            break;
        }
     }
     if(flag) {
         this.id++;
     }
 }

当然还可以改写为ES6的方式,更为简单简洁,不过这样应该好理解一些!

风吹短裙飘 2022-09-13 19:39:03

定义一个数组将要判断的属性存储,然后forEach遍历数组判断

柒七 2022-09-13 19:39:03
(this.cateDatas.caijing || alert("请选择地域信息!")) &&
(this.cateDatas.redian || alert("请选择优惠政策!")) &&
(this.cateDatas.hangye || alert("请选择行业资讯!")) &&
...
掀纱窥君容 2022-09-13 19:39:03
methods: {
  next() {
    if (!this.cateDatas.caijing) return "请选择财经新闻!";
    if (!this.cateDatas.redian) return "请选择热点聚焦!";
    if (!this.cateDatas.hangye) return "请选择行业资讯!";
    if (!this.cateDatas.youhui) return "请选择优惠政策!";
    if (!this.cateDatas.diyu) return "请选择地域信息!";

    this.id++;
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文