前端代码规范

本文主要介绍了前端开发的代码规范,包括HTML、CSS、less、JavaScript和Vue的规范。强调了使用ESLint和Prettier进行代码约束和格式化,HTML的语义化标签,CSS避免使用标签选择器,less的嵌套限制,JavaScript的命名规则,以及Vue组件的详细Prop定义和模板简洁性等。此外,还提出了v-if与v-show的使用场景和v-for的key策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新公司规范,做个备注

通用规范

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值