本文介绍了项目中最基本的开发规范,这些都是最基本要求,当然,开发中,还应根据项目具体要求的规范进行开发。后续规范将会持续更新中。
4
个空格做为一个缩进层级,不允许使用 2
个空格或 tab
字符120
个字符template
-> script
-> style
template
根节点只允许包含一个直接子节点,以下情况都是不允许的:
// bad
hello
onetwo
hello
// good
one
1.自定义组件的标签名不得使用 HTML 中默认已定义的标签,要求至少由两个单词组成,并且符合 kebab-case
非根结点的 template
标签里必须有一个以上的子结点
// good
template
标签上不能带有 key
属性// bad
4.如果自定义标签中没有内容,需要以自闭合标签形式出现
// good
5.标签右括号 >
的位置:
<
不在同一行)时,右括号 >
需要另起一行,缩进与左括号 <
保持对齐。// good
// good
// good
/>
前不用添加空格// bad
(这有一个空格,不推荐加)
1.属性值必须用双引号
2.模板中属性命名kebab-case
slot
命名采用 kebab-case
ref
命名采用 PascalCase
(驼峰)
模板
solt
ref
3.class
/ style
属性值不能设置空字符串
// bad
// good
4.布尔类型的属性值为 true
时,建议不添加属性值
// bad
// good
5.当组件的属性多于 2
个时,必须分成多行,每行写一个属性;只有属性个数小于或等于 2
个时,可以写在一行内
// bad
// good
6.不能有重复的属性,class
和 style
除外
7.当元素有多个属性时,应该按照统一的顺序书写
1.v-for
在使用 v-for
的元素上添加 key
,以便维护内部组件及其子树的状态。
-
{{item.teacherName}}
使用建议:
1. v-for绑定数组对象时,如果往数组中添加对象时。
a. 每次都在数组的末尾添加,则key可以使用index
b. 如果不确定添加到哪个位置,为每一个制定一个编号,用对象的编号作为key
2. v-for和v-if不建议同时使用
a. 当 Vue 处理指令时,v-for比 v-if具有更高的优先级。
b. 所以如果想要使用 v-if判断 v-for元素列表是否显示,将两个指令同时应用在同一个元素的方法就是错误的。
解决办法:
// bad
-
{{ user.name }}
// good
-
{{ user.name }}
指令缩写
建议一下指令使用缩写
v-bind——> :
v-on——> @
建议:左右各插一个空格
// bad
{{ text }}
{{text}}
// good
{{ text }}
不能含有多余空格
// bad
// good
1.不能使用多余的变量
2.禁止在插值中使用this
// bad
{{ this.text }}
// good
{{ text }}
1.指定 props
类型
// bad
// good
// good
3.props
提供的默认值必须满足校验条件
// bad
// good
// good
1.data必须是一个函数
2.data
中禁止使用 computed
中的变量
// bad
3.props
, data
, computed
, methods
中不能有重复的 key
// bad
// good
1.不能使用 Vue 中的保留字段命名变量
$
前缀来说,其在 Vue 生态系统中的目的是暴露给用户的一个特殊的实例属性,所以把它用于私有属性并不合适。组件中使用 $emit
事件时携带的参数,个数不应该超过 2
个。建议将数据参数以 Object
形式传递,将事件参数 event
放在最后
// bad
onClick(event) {
this.$emit('click', this.value1, this.value2, event);
}
// good
onClick(event) {
this.$emit(
'click',
{
value1: this.value1,
value2: this.value2
},
event
);
}
// good
onClick(event) {
this.$emit('click', event);
}
1.为组件样式设置作用域
2.深度选择器/deep/ 建议前面加div,解决编辑器爆红问题。