新公司规范,做个备注
通用规范
1、统一使用ESLint
- 使用Eslint约束代码规范,有实在不太合理的规矩统一自定义屏蔽
2、代码格式化
-
推荐采用Prettier配置如下
vscode配置 展开源码
HTML规范
1、HTML 类型
推荐使用 HTML5 的文档类型申明:
(建议使用 text/html 格式的 HTML。避免使用 XHTML。XHTML 以及它的属性,比如 application/xhtml+xml 在浏览器中的应用支持与优化空间都十分有限)。
- 规定字符编码
- IE 兼容模式
- doctype 大写
2、缩进
- 缩进使用 2 个空格(一个 tab)
- 嵌套的节点应该缩进。
3、分块注释
- 在每一个块状元素,列表元素和表格元素后,加上一对 HTML 注释。注释格式
4、语义化标签
- HTML5 中新增很多语义化标签,所以优先使用语义化标签,避免一个页面都是 div 或者 p 标签
5、引号
- 使用双引号(“ “) 而不是单引号(‘ ‘) 。
CSS规范
1、命名
- 类名使用小写字母,以中划线分隔
- id 采用驼峰式命名
2、选择器
- css 选择器中避免使用标签名
从结构、表现、行为分离的原则来看,应该尽量避免 css 中出现 HTML 标签,并且在 css 选择器中出现标签名会存在潜在的问题。 - 很多前端开发人员写选择器链的时候不使用 直接子选择器(注:直接子选择器和后代选择器的区别)。有时,这可能会导致疼痛的设计问题并且有时候可能会很耗性能。然而,在任何情况下,这是一个非常不好的做法。如果你不写很通用的,需要匹配到 DOM 末端的选择器, 你应该总是考虑直接子选择器。
3、尽量使用缩写属性
4、省略0后面的单位
5、避免使用ID选择器及全局标签选择器防止污染全局样式
less规范
1、避免嵌套层级过多
- 将嵌套深度限制在 3 级。对于超过 4 级的嵌套,给予重新评估。这可以避免出现过于详实的 CSS 选择器。
- 避免大量的嵌套规则。当可读性受到影响时,将之打断。推荐避免出现多于 20 行的嵌套规则出现
JavaScript规范
1、命名
-
方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
-
其中 method 方法命名必须是 动词 或者 动词+名词 形式
-
特此说明,增删查改,详情统一使用 add / update / delete / detail / get 5 个单词,不得使用其他(目的是为了统一各个端)
-
常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
常用动词 展开源码
2、条件判断和循环最多三层
- 条件判断能使用三目运算符和逻辑运算符解决的,就不要使用条件判断,但是谨记不要写太长的三目运算符。如果超过 3 层请抽成函数,并写清楚注释。
vue规范
1、组件名为多个单词
- 组件名应该始终是多个单词组成(大于等于 2),且命名规范为
KebabCase
格式。 - 这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。
2、Prop 定义应该尽量详细
- 必须使用 camelCase 驼峰命名
- 必须指定类型
- 必须加上注释,表明其含义
- 必须加上 required 或者 default,两者二选其一
- 如果有业务需要,必须加上 validator 验证
3、模板中使用简单的表达式
- 组件模板应该只包含简单的表达式,复杂的表达式则应该重构为计算属性或方法。复杂表达式会让你的模板变得不那么声明式。我们应该尽量描述应该出现的是什么,而非如何计算那个值。而且计算属性和方法使得代码可以重用。
4、指令都使用缩写形式
- 指令推荐都使用缩写形式,(用 : 表示 v-bind: 、用 @ 表示 v-on: 、用 # 表示 v-slot:)
5、必须为 v-for 设置键值 key
6、v-show 与 v-if 选择
- 如果运行时,需要非常频繁地切换,使用 v-show ;如果在运行时,条件很少改变,使用 v-if。
7、使用路由懒加载(延迟加载)机制
8、必须加注释的地方
- 公共组件使用说明
- api 目录的接口 js 文件必须加注释
- store 中的 state, mutation, action 等必须加注释
- vue 文件中的 template 必须加注释,若文件较大添加 start end 注释
- vue 文件的 methods,每个 method 必须添加注释
- vue 文件的 data, 非常见单词要加注释
9、v-for和v-if禁止同时使用,应该使用computed
10、v-for的key禁止使用index