大家有没有什么建议
命名
-
建议使用 驼峰式大小写 (Camel case)
-
变量命名尽量使用英文单词,语义化,
例如 订阅id 可以用subscriptionId,subscriptionNo,也可以间简写为subId,简写时最好带上注释
-
函数的命名,尽量以动词开头,减少字数,如果碰到重复的或者固定不变的功能函数,前方加下划线
例如vue中已经有了_init,你如果还要命名这个,前面再加一个下划线__init
-
getList,handleClick,这些都是可以的,但是如果存在多个list,多个button,建议重新命名
例如getUserList,handleSubmitClick,甚至getList1,getList2也是允许的(最好有注释)
- api接口的命名 [请求方式][接口功能][主要参数]
例如获取订阅id = getSubscriptionId,通过订阅id获取订阅详情 = getSubscriptionDetailById
- 页面的命名尽量使用一个单词,并根据路由建立文件夹
index表示首页,/a/index.vue 表示 /a路由下首页
- 除index外,首页应当大写字母开头
JS篇
-
尽量使用es6语法
- let const 定义变量
- Array.isArray判断数组
- 当接口比较多时尽量使用Promise.all, Promise.finally
- For ... In ,for ... of
- 模版字符串
- 函数默认值,扩展运算符默认值
- 谨慎使用optional chain( ?. )
- 使用箭头函数的匿名函数代替普通函数
旧:function a(){....}. 新:const a = ()=>{...}
-
对象名简写
const a='a' const obj={a}实际上obj={a:'a'} -
在需要同步执行的时候使用 async await
-
同时请求多个接口的时候使用Promise.all
-
尽量使用数组方法代替循环
- Map
- forEach
- Every 和 some
- 删除元素使用filter
- Find 和findIndex
- Includes
-
函数适度封装,如果一条语句需要用到3次,建议封装
-
For await of
Vue篇
- 如果一个功能使用了2次,就应当提取为组件
- 尽量使用props,减少vuex的使用
- 无需vue-router时不使用
- 页面组件化,把一个页面当成一个组件来做,通过props传值
- data中尽量不引入图片,通过css解决
- 不变的数据通过computed或者Object.freeze处理
- 注意css\js的懒加载
- Webpack for production and vite for development
Node篇
- 熟练使用nvm管理node版本
- 线上服务使用pm2
- 服务运行要打日志
- 高node版本可以使用esm,大部分时间使用cjs
- 注意错误捕获,预防崩溃
- 减少定时器的使用,防止内存溢出