一、编码约定
- <强制> JavaScript, *.vue,Jsx代码结尾不加分号;
- <强制> 字符串默认单引号’,不用双引号”
- <强制> LESS文件内用单引号’,不用双引号”
- <强制> 比较时只能用===作比较,不用==
- <强制> 不能用var申明变量,改用let,能用const不用let
- <强制> import组件时名称为大驼峰:ComponentImportedName
- <推荐> *.vue文件中name用大驼峰命名
- <推荐> 组件属性一般不用每个都换行定义,除非太多太长需要换行显示或系统已经配置了eslint
- <推荐> 组件行内样式style属性不能超过3个样式属性,需要单独定义样式类
- <推荐> 所有函数方法用块注释定义功能用途、参数及类型、参数说明、返回值及类型等
- <推荐> Vue组件内methods中的函数之间不能空行
- <推荐> 表单:推荐将验证描述文件rules单独用文件封装
- <推荐> 表格:所有表格列columns单独用文件封装
- <推荐> 文件引用:所有文件引用尽量采用别名路径(系统已经定义了大多数别名供使用vue.config.js),除非目录间不超过2级
- <推荐> *.vue模板文件内的样式尽量用scoped来限制,模块的顶层样式可以用t-xxxx 的命名来限制样式块。样式名称不要简写,尽量取名要表达的意思
- <推荐> 所有模块样式颜色均来自:
~@/style/antd-custom-vars.less
文件,通常不需要特别定义 - <推荐> 使用reflect函数式语法代替in,typeof等命令式语法
- <推荐> 使用语义更明确的async/await代替promise方案,是代码可读性更强
- <推荐> 多级组件交互使用provide/inject,不推荐使用eventbus
二、http请求约定
- 目前项目都采用token放header。
- 项目已经封装了集成请求/响应拦截器的方法,import request from ‘@/utils/request’使用。
- 项目已经做了请求/响应拦截器, import ‘@/permission.js’使用。
三、API定义
- API定义引用已经统一定义的函数:
import { post, get } from '@/api'
- 在页面头部定义api路径列表,并导出
五、Git提交代码注释
Git代码提交时必须添加注释,注释需要清楚的说明所提交内容的相关信息,不能过于简单。所提交内容需要添加如下11种类型的前缀加以区分注释,一目了然就知道大概做了什么操作。
推荐使用vscode工具git-commit-plugin进行commit message编写
- feat:新增功能
- fix:bug 修复
- docs:文档更新
- style:不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
- refactor:重构代码(既没有新增功能,也没有修复 bug)
- perf:性能, 体验优化
- test:新增测试用例或是更新现有测试
- build:主要目的是修改项目构建系统(例如 gulp,webpack,rollup 的配置等)的提交
- ci:主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
- chore:不属于以上类型的其他类型,比如构建流程, 依赖管理
- revert:回滚某个更早之前的提交
注:不能一次提交过多的文件,且文件包含各种修改内容。尽量多commit集中push。每天尽量多次push,不能长时间不提交代码,之后一次提交,这样会造成更多的冲突,也不便于代码跟进。
六、UI库使用
暂定使用ant-design-vue作为小组业务开发的通用UI库。目前版本为vue2版本ant-design-vue@1.7.8.