1. 命名规范
a.ClassName命名
ClassName的命名应该尽量精短、明确,必须以字母开头命名,且全部字母为小写,单词之间统一使用下划线 “_” 连接 当子孙模块超过4级或以上的时候,可以考虑在祖先模块内具有识辨性的独立缩写作为新的子孙模块
<!-- 这个时候 tiui 为 tenant_info_user_img 首字母缩写-->
<div class="tenant">
<div class="tenant_cover"></div>
<div class="tenant_info">
<div class="tenant_info_user">
<div class="tenant_info_user_img">
<img src="" alt="">
<!-- 这个时候 tiui 为 tenant_info_user_img 首字母缩写-->
<div class="tiui_tit"></div>
<div class="_txt"></div>
...
</div>
</div>
<div class="tenant_info_list"></div>
</div>
</div>
祖先模块不能出现下划线,除了是全站公用模块,如 mod_ 系列的命名:
<!-- 这个是全站公用模块,祖先模块允许直接出现下划线 -->
<div class="mod_info">
<div class="mod_info_son"></div>
<div class="mod_info_son"></div>
...
</div>
b.图片命名
图片命名建议以以下顺序命名:
图片业务(可选) +(mod_)图片功能类别(必选)+ 图片模块名称(可选) + 图片精度(可选)
图片业务:
- List item
- pp_:拍拍
- wx_:微信
- sq_:手Q
- jd_:京东商城
- …
图片功能类别:
- mod_:是否公共,可选
- icon:模块类固化的图标
- logo:LOGO类
- spr:单页面各种元素合并集合
- btn:按钮
- bg:可平铺或者大背景
- …
图片模块名称:
- goodslist:商品列表
- goodsinfo:商品信息
- useravatar:用户头像
- …
图片精度:
如下面例子:
公共模块:
wx_mod_btn_goodlist@2x.png
wx_mod_btn_goodlist.png
mod_btn_goodlist.png
非公共模块:
wx_btn_goodlist@2x.png
wx_btn_goodlist.png
btn_goodlist.png
c. 声明变量命名
d. vue文件命名
组件的命名需遵从以下原则:
- 有意义的 : 不过于具体,也不过于抽象
- 简短 : 2 到 3 个单词
- 具有可读性 : 以便于沟通交流
- 小驼峰命名
例如:
2. JS代码规范
a. 基本
- 2个空格缩进,必须正确缩进
- 分号、逗号之后必须空格或转行
- 左大括号不转行
- 左大括号之前一定有空格
- 若左右大括号在一行,则大括号内侧必须有空格。例如const obj = { a: 1, b: 2 }
- 双目运算符前后必须有空格 例如: a && b
- 非必要不写分号(无行末分号)
b. 变量
- 不使用var,没有显式赋值的变量必须用const,其余用let
- 允许多个变量共用声明和初始化语句,逗号隔开,但不能太长。例如:const
a = 1, b = 2 - 变量名原则上使用小驼峰命名法(首字母小写,其余单词首字母大写),例如userInfo
- 对象内容很短时,可以在一行内完成
- 对象的最后一个成员后,不得添加逗号
- 对象成员变量赋值时,若属性名称和读取的变量名一致,则必须简写。即const obj = { a: a
}必须简写为const obj = { a }
c. 控制
- if、else、for的执行语句块很短时,可以在行内完成,不必大括号展开。若换行,必须大括号展开。
- else应该与if的右大括号在同一行,此时else前后都有空格,即} else {
- if、else if、else的层级嵌套尽量不要超过三层
3. 注释规范
a.HTML中单行注释
一般用于简单的描述,如某些状态描述、属性描述等 注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行
<!-- Comment Text -->
<div>...</div>
b. JS中注释
·单行注释
说明: 单行注释以两个斜线开始,以行尾结束 语法: // 注释说明 使用规则:注释双斜杠后有一个空格
let pig = ''
·多行注释
说明:以 /* 开头, / 结尾 语法:/ 注释说明 / 使用规则:第一行为/,最后行为*/,其他行以开始,并且注释文字与保留一个空格
setTitle()
·函数(方法)注释
语法:
/** ?* 函数说明 ? * @author 作者 ? * @param {参数类型} 描述信息 ? * @return {返回类型} 描述信息
*/
常用注释关键字:
注释名 | 语法 |
---|
@param | @param 参数名 {参数类型} 描述信息 | @return | @return {返回类型} 描述信息 |
例如:
async batchPersonAuditEntrance(arr=[], isFreeze=0) {
if(arr.length <= 0) return this.$message.error('暂无处理数据')
let lists = this.$helper.deepClone(arr)
lists = lists.map((item,index)=> {
return {
operationId: item.id,
accountType: item.accountType,
accountId: item.accountId,
villageId: item.villageId,
isFreeze: isFreeze,
realName: item.realName,
phoneNumber: item.phoneNumber,
avatarUrl: item.avatarUrl,
gender: item.gender,
templateEndDate: item.expiredTime,
index
}
})
const { code, data: { list = [] }, message} = await this.$myRequest(this.$api.batchPersonAuditEntrance, {list : JSON.stringify(lists)})
if(code !== 200) return this.$message.error(message)
if(list && list.length <=0) {
this.$message.success('操作成功')
this.$refs.table.clearSelection()
await this.getList()
return
}
this.showFailData = list.map(item=> {
return {
message: item.message,
...arr[item.index],
}
})
this.showFaceFailDataDialog = !this.showFaceFailDataDialog
}
4. git提交代码规范
git commit -m 'feat: 描述信息'
Type: commit的类别,包含以下七种:
参考:凹凸前端代码规范
|