# 代码规范

# git提交规范

  • git分支三层分支: 个人分支、开发分支、线上分支;开发过程中依次向上层合并分支;
  • git提交注释规范:git commit -m type: xxx
```
type 用于说明本次 commit 的类型,必须是以下枚举值:
feat: 提交新功能,feature 的缩写
fix: 修复bug
docs: 文档改动
style: 不涉及代码逻辑的改动,如增加空格、代码格式化、增加分号等
refactor: 对原有代码进行重构,即不增加新功能,又不修复 bug
perf: 改进代码性能的修改,performance 的缩写
test: 增加/修改现有测试用例
chore: 对构建过程、辅助工具或依赖库的更改

```

# 命名规范

  1. 文件、文件夹命名统一使用-连接,如application-manage
  2. 路由路径定义:按照对应文件所在路径命名,保证能看到路由就能直接找到对应页面。如对应文件所在路src\views\business-management\views\application-manage\register\index.vue,则路由路径为/auth/application-manage/register
  3. business-management中views中文件中须有readme.md说明各个文件含义,同时其中的api和路由中文件夹命名和views中的文件一一对应
  4. js属性、方法命名为小驼峰命名方法如businessId,类名使用大驼峰命名法如BusinessClass,常量全部使用大写如LOOKUP、BUSINESS_TYPE(单词之间使用下划线分割)。
  5. class命名使用-连接单词如custom-name,id命名使用小驼峰命名如customId
  6. 组件中属性、方法使用英文,不得使用中文拼音,同时增加注释,方便后期维护
  7. 模块的主入口文件应命名为 index.[js,ts,vue]等,子页面放在模块内components目录下
  8. 所有绑定事件的方法应统一前缀onhandle,所有后端拉取数据的方法应统一前缀 get

# 代码规范

  1. 对重复使用两次以上的代码应提取成公共方法或组件
  2. 避免使用“魔数”,代码中所有关于状态类型的值应该常量化,并添加注释
  3. 对通用的样式进行提取,对私有代码需要私有化,如使用vue的scope,CSS Modules,单独命名空间等
  4. 通用组件应避免与业务紧密结合,提升组件的可复用性
  5. 尽量使用 async await代替Promise,使用async await需要使用trycatch捕获异常
  6. 考虑对页面级别的异常进行统一包装处理,业务代码只注重业务逻辑
  7. 避免在jsx或模板中出现复杂逻辑,嵌套逻辑等
  8. 模块应提供统一的出口文件,如Vue的components应提供index.vue统一输入所有组件

# 静态资源规范

  1. 对一般不会修改的图片,插件,组件库等使用cdn
  2. 对于小图标建议使用 svg或 文字图标,与UI达成共识
  3. 静态资源使用缓存,服务器端使用gzip进行压缩
  4. 使用webP代替png图片

# 样式规范

  1. 尽可能使用低优先级的选择器
  2. 避免使用!important
  3. 组件样式应方便按需修改,对关键样式可暴露对外属性进行配置
  4. 对常用色彩值,尺寸等建议用常量进行定义
  5. 样式写法采用bem规范,如:page-btn__prev
  6. 覆盖样式

# Vue必要规范

  1. 组件名为多个单词
  2. 组件data必须是一个函数,他的返回值必须是一个对象
  3. prop定义应该尽量详细,提供默认值及类型要求
  4. v-for必须设置key,key应该是不重复且不应该为index
  5. 避免v-ifv-for用在一起,可对数据进行filter之后再遍历
  6. 为组件私有样式设置作用域
  7. 和父组件紧密耦合的子组件应该以父组件名作为前缀命名,如tabletable-item
  8. 多个属性应该分行撰写