# 开发规范
# 命名规范
- 属性方法名类名及文件名应有意义,建议不要使用单词的简写
- 模块的主入口文件应命名为 index.[js,ts,vue]等,子页面放在模块内components目录下
- js 属性名,方法名应使用驼峰命名法
- 类名使用大驼峰命名法
- 常量全部使用大写,单词之间使用下划线分割
- 样式使用bem命名法,样式名应全部小写
- 文件使用中划线命名法,单词之间使用中划线分割,名称中不能出现大写字母
- 所有绑定事件的方法应统一前缀on或handle,所有后端拉取数据的方法应统一前缀 get
# 代码规范
- 对重复使用两次以上的代码应提取成公共方法或组件
- 避免使用“魔数”,代码中所有关于状态类型的值应该常量化,并添加注释
- 对通用的样式进行提取,对私有代码需要私有化,如使用vue的scope,CSS Modules,单独命名空间等
- 通用组件应避免与业务紧密结合,提升组件的可复用性
- 尽量使用 async await代替Promise,使用async await需要使用trycatch捕获异常
- 考虑对页面级别的异常进行统一包装处理,业务代码只注重业务逻辑
- 避免在jsx或模板中出现复杂逻辑,嵌套逻辑等
- 模块应提供统一的出口文件,如Vue的components应提供index.vue统一输入所有组件
# 静态资源规范
- 对一般不会修改的图片,插件,组件库等使用cdn
- 对于小图标建议使用 svg或 文字图标,与UI达成共识
- 静态资源使用缓存,服务器端使用gzip进行压缩
- 使用webP代替png图片
# 样式规范
- 尽可能使用低优先级的选择器
- 避免使用!important
- 组件样式应方便按需修改,对关键样式可暴露对外属性进行配置
- 对常用色彩值,尺寸等建议用常量进行定义
- 样式写法采用bem规范,eg:page-btn__prev
- 覆盖样式
# Vue必要规范
- 组件名为多个单词
- 组件data必须是一个函数,他的返回值必须是一个对象
- prop定义应该尽量详细,提供默认值及类型要求
- v-for必须设置key,key应该是不重复
- 避免v-if和v-for用在一起,可对数据进行filter之后再遍历
- 为组件私有样式设置作用域
- 和父组件紧密耦合的子组件应该以父组件名作为前缀命名,如table与table-item
- 多个属性应该分行撰写
提交规范 →