命名规范
- 方法:handle + 动词 + 名词
- 接口: api + 动词 + 名词
- 是否/显示: is + 名词、show + 名词
- 变量名:尽量通俗易懂,避免出现错误单词
条件或三元运算符,可以转换为逻辑表达式
第一种||:item ? item.visitCount : 0 ⇿ item?.visitCount || 0 ⇿ item?.visitCount ?? 0
补充:?. 可选链没有值返回undefined。?? 左边为undefined或null执行右边,左边不为undefined或null执行左边
第二种&&:this.showScore ? (this.showScore =false) : ‘’ ⇿ this.showScore && (this.showScore = false)
第三种true/false: ⇿ this.isSmoke = data.isSmoke === 1
其他
- 最好用piui提供的样式和组件,不建议在模板做太多逻辑的判断,用:style=”[headerStyles]”
- 打印日志: console.log(TAG_NAME, xxx)
- 不变的数据定义计算属性
- 清空没用的代码、打印日志和默认参数
- 不建议在循环里直接对this进行操作,推荐通过map生成数组,然后统一再concat到this数组中
- promise方法,统一推荐使用async await 方式来调用,减少嵌套
- 不建议使用that,推荐使用箭头函数,确保this作用域
- 内外变量名避免一致
- 字符串拼接,推荐使用[].join(‘-‘)
- 可以通过ref调用子组件方法
- 复杂逻辑 和 数字状态判断需要注释说明
- lodash 分开引用
针对这段代码提出优化方案
方案一:按审核状态排序
const sortMap = {0: 0, 2: 2}
return this.records.map(i => {
i.sort = sortMap[i.auditStatus] || 1
return i
}).sort((a, b) => return a.sort - b.sort )
方案二:过滤