外观
注释规范
代码大区块之间可以回车换行,且有有单独的中文注释。小模块或者内容备注前面需要携带大模块或者功能的名称,以中划线分隔。 必须加注释的地方:
- 公共组件使用说明
api
目录的接口 js 文件必须加注释store
中的state
,mutation
,action
等必须加注释vue
文件中的template
必须加注释,若文件较大添加start
end
注释vue
文件的data
, 非常见单词要加注释vue
文件中,在引用其他方法时,也需要加注释vue
文件的methods
,每个method
必须添加注释。无参数或者比较简单函数可以单行备注,有参数和复杂函数需要多行备注。
整体规范
注释名 | 内容 | 含义 |
---|---|---|
@description | 文件、方法描述 | 描述该功能模块的作用 |
@author | 作者信息 | 描述此函数作者的信息 |
@version | 版本号 | 描述版本信息 |
@param | 参数名 {类型} 描述 | 描述此函数入参的信息 |
@return | 返回值 {类型} 描述 | 描述此函数返回的信息 |
- 通用的.css, .js:
@description
@author
@version
- 项目下公共.js:
@description
- 公共方法:
@description
@param
@return
html注释
html
<!-- header头部 -->
<header>
<div class="logo"></div>
</header>
<!-- 布控模块 -->
<section>
...
</section>
css注释
块级注释统一用
/* xxx */
scss
/* 关键词标签 */
@mixin tag-keyword($color, $bdcolor) {
display: inline-block;
padding: 8rpx 28rpx;
color: $color;
border: 2rpx solid $bdcolor;
border-radius: 200rpx;
}
.keywords {
@include tag-keyword(#32AE57, rgba(50,174,87,0.60));
}
.keywords-uncheck {
@include tag-keyword(#333333, #DDDDDD);
}
js注释
块级注释
块级注释,包括对文件的整体注释,以及方法块注释
js
data: function () {
return {
//布控
controlLoading: false, //布控loading
controlAnalysisObj: { //布控统计
date: '2050-10-1' //布控统计日期
}
}
},
created(){
// header-总体分析-解析柱状图
this.changeAnalysis();
// 布控-布控统计-请求列表数据
this.getControlList();
},
method:{
//public-返回当前时间年份
returnDate(){
return new Date().getFullYear()
},
/*
* @description: 布控-布控统计图
* @param {Boolean} 是否显示线条
* @param {Array} 统计图的数据
* @return 没有返回信息写 void / 有返回信息 {返回类型} 描述信息
*/
controlChart(showLine,chartData){
...
}
vue的style备注示例:
//header头部
.header{
.logo{
width:100px;
}
}
//布控
.control{
...
}
js
/**
* @description 正则校验
*/
const mobileReg = /^1\d{10}$/
const emailReg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
const specialCharReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/
const emojiReg = /\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f]|\ud83d[\ude80-\udeff]|[\uD800-\uDBFF][\uDC00-\uDFFF]/
/**
* @description 四舍五入保留n位小数
* @param {Number} num 初始数值
* @param {Number} n 小数位数,默认1位
* @param {Boolean} isFixed 小数位是否补0,默认否
* @return {Number} 小数值
*/
const countDecimal = (num, n = 1, isFixed = false) => {
if (isFixed) {
return Number(num.toFixed(n))
} else {
const reg = new RegExp('([0-9]+.[0-9]{' + n + '})[0-9]*')
return Math.round(num * Math.pow(10, n)) / Math.pow(10, n).toString().replace(reg, '$1')
}
}
/**
* @description 过滤特殊符号
* @param {String} str 文本字符串
* @param {String} key 替换的内容,默认空
* @return {String} 过滤掉特殊符号的字符串
*/
const filterSpecialChar = (str, key = '') => {
return str.replace(new RegExp(specialCharReg, 'g'), key)
}
/**
* @description 过滤表情符号
* @param {String} str 文本字符串
* @param {String} key 替换的内容,默认空
* @return {String} 过滤掉表情符号的字符串
*/
const filterEmoji = (str, key = '') => {
return str.replace(new RegExp(emojiReg, 'g'), key)
}
export {
mobileReg,
emailReg,
emojiReg,
specialCharReg,
countDecimal,
filterSpecialChar,
filterEmoji,
}
全局变量注释
vuex
数据状态管理的变量必须注释
js
// store/state.js
const state = {
appId: 'wx01d071fbf6dac44c', // 应用的唯一标识
openId: null, // 一个用户打开一个微信应用(公众号、小程序)的唯一标识
unionId: null, // 同一用户,对同一个微信开放平台下的不同应用,unionid是相同的
}
页面变量注释
单个.vue页面,基础的、全局的、路由传进来的变量必须注释,例:
type
entrance
等
定义规则:是否关系用0,1;平级关系用1,2,3...;默认值为Number类型
js
data () {
return {
type: 1, // 1视频 2图文 3快速咨询
entrance: 1, // 1就诊人管理 2药店端扫码添加就诊人 3购药补充信息 4白处方补充信息
}
}
逻辑注释
方法中复杂易混淆的逻辑必须注释
如果在书写代码时,业务逻辑过于复杂,需要在特定的地方加上辅助注释信息,以备后来开发人员理解业务
上次更新: