vue组件,数据通信,样式,JS的规范规则。对vue官方风格指南的总结归类并加入自己的规范,在团队小组中使用。
1.项目名/文件目录命名:
kebab-case(- 连接):
项目名:vue-admin
文件目录:table-module
2.组件规范:
2.1 组件名为多个单词:
组件名应该始终是多个单词的,根组件 App 以及
这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。
2.2 单文件组件的文件名大驼峰或者横线连接(为了import时更方便,项目使用大驼峰):
单词大写开头对于代码编辑器的自动补全最为友好。
2.3 紧密耦合的组件名:
和父组件紧密耦合的子组件应该以父组件名作为前缀命名。
如果一个组件只在某个父组件的场景下有意义,这层关系应该体现在其名字上。
因为编辑器通常会按字母顺序组织文件,所以这样做可以把相关联的文件排在一起。
components/
|- TodoList.vue
|- TodoListItem.vue
|- TodoListItemButton.vue
2.4 组件名中的单词顺序:
组件名应该以高级别的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。
比如对于一个带搜索表单的应用来说,它可能包含这样的组件:
components/
|- ClearSearchButton.vue
|- ExcludeFromSearchInput.vue
|- LaunchOnStartupCheckbox.vue
|- RunSearchButton.vue
|- SearchInput.vue
|- TermsCheckbox.vue
注意到了,我们很难看出来哪些组件是针对搜索的。现在我们来根据规则给组件重新命名:
components/
|- SearchButtonClear.vue
|- SearchButtonRun.vue
|- SearchInputExcludeGlob.vue
|- SearchInputQuery.vue
|- SettingsCheckboxLaunchOnStartup.vue
|- SettingsCheckboxTerms.vue
因为编辑器通常会按字母顺序组织文件,所以现在组件之间的重要关系一目了然。
2.5 自闭合组件:
在单文件组件、字符串模板和 JSX 中没有内容的组件应该是自闭合的——但在 DOM 模板里永远不要这样做。
注:
单文件组件:后缀.vue文件
DOM 模板:直接在HTML页面挂载的模板,就是原先写在页面上的,能被浏览器识别的HTML结构,会在一加载就被浏览器渲染,然后js获取dom节点的内容,
形成dom模板。
字符串模板:Vue实例中的template属性所对应的字符串
示例:
Vue.component('child', {
template: '{{ type }}'
})
2.数据通信规范:
3.1 Prop 定义应该尽量详细:
在你提交的代码中,prop 的定义应该尽量详细,至少需要指定其类型。
3.2 Prop 名大驼峰,在模板和 JSX 中应该始终使用 kebab-case(- 连接)。
props: {
greetingText: String
}
4.组件样式规范:
4.1 组件样式设置作用域:
对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的,在style标签加上scoped(