1、问题描述:我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃肿,越来越看不懂,那么如何更优雅的写判断逻辑
switch判断中多个case的简单优化
// 错误示例
switch (status){
case 1:
sendLog('processing')
jumpTo('IndexPage')
break
case 2:
case 3:
sendLog('fail')
jumpTo('FailPage')
break
case 4:
sendLog('success')
jumpTo('SuccessPage')
break
case 5:
sendLog('cancel')
jumpTo('CancelPage')
break
default:
sendLog('other')
jumpTo('Index')
break
}
// 正确示例1
const actions = {
'1': ['processing','IndexPage'],
'2': ['fail','FailPage'],
'3': ['fail','FailPage'],
'4': ['success','SuccessPage'],
'5': ['cancel','CancelPage'],
'default': ['other','Index'],
}
// 正确示例2
const actions = new Map([
[1, ['processing','IndexPage']],
[2, ['fail','FailPage']],
[3, ['fail','FailPage']],
[4, ['success','SuccessPage']],
[5, ['cancel','CancelPage']],
['default', ['other','Index']]
])
2、computed正确使用姿势
data() {
return {
firstName: "中台",
lastName: "项目组",
};
},
computed: {
// 错误示范
fullName() {
return this.firstName + this.lastName;
},
// 正确示范
newFullName({ firstName, lastName }) {
return firstName + lastName;
},
},
3、页面级组件开发正确目录展示
resource 页面级别组件文件
components 业务组件
mixins 混入内容(谨慎使用,不太方便维护)
pages 页面级别组件
scss 样式抽离
index.vue 唯一入口