这几天 review 同事的 vue2 代码,发现一些问题,这里说下我的看法,希望和各位大佬讨论交流下:
1. 子组件经常直接修改 props,之前团队内分享过这么做的危害,还是不以为意,推荐在 data 中单独存一份要操作的 props,然后组件内部操作 data
2. 组件中经常使用 this.$store.xx.state,推荐使用 mapGetters,mapMutations, mapActions 等写法,而且十分不建议直接拿 vuex 中的 state,更推荐使用 getter 的方式做一层包装
3. 关于新增编辑页面逻辑基本相同,到底要不要写两个页面,推荐写一个页面,通过路由的 param 区分新增编辑的一些零星的特殊逻辑
4. 重复组件宁可复制粘贴也绝不考虑封装抽离,推荐如果一个组件有两个及以上地方用到了就封装吧,不过封装前要好好考虑扩展性、灵活性,不要过度封装(之前的 leader 就是为了封而封,我都要疯)
5. 代码规范等,推荐项目中增加 .vscode 去配置一些 setting 和 extensions,还有 .editorConfig,看很多开源项目都是这么做的,.eslintrc 尽可能严格一些(抄开源项目的)
6. 命名看似简单,还是得提一下,同事命名各种拼音,非驼峰,大小写混用,单词错误拼写,code spell checker 了解一下,实在不行,code if 上抄一些别人的命名,尤其国际化文件,你的 key 全 *** 起名,看着就火大
1. 子组件经常直接修改 props,之前团队内分享过这么做的危害,还是不以为意,推荐在 data 中单独存一份要操作的 props,然后组件内部操作 data
2. 组件中经常使用 this.$store.xx.state,推荐使用 mapGetters,mapMutations, mapActions 等写法,而且十分不建议直接拿 vuex 中的 state,更推荐使用 getter 的方式做一层包装
3. 关于新增编辑页面逻辑基本相同,到底要不要写两个页面,推荐写一个页面,通过路由的 param 区分新增编辑的一些零星的特殊逻辑
4. 重复组件宁可复制粘贴也绝不考虑封装抽离,推荐如果一个组件有两个及以上地方用到了就封装吧,不过封装前要好好考虑扩展性、灵活性,不要过度封装(之前的 leader 就是为了封而封,我都要疯)
5. 代码规范等,推荐项目中增加 .vscode 去配置一些 setting 和 extensions,还有 .editorConfig,看很多开源项目都是这么做的,.eslintrc 尽可能严格一些(抄开源项目的)
6. 命名看似简单,还是得提一下,同事命名各种拼音,非驼峰,大小写混用,单词错误拼写,code spell checker 了解一下,实在不行,code if 上抄一些别人的命名,尤其国际化文件,你的 key 全 *** 起名,看着就火大
展开
4
5