vue 规范一些总结
VUE 规范
1. 组件名称应为多单词,一个是驼峰写法,一个是-的写法
2. data必须是个函数,避免全局污染
3. prop定义类型在你提交的代码中,prop 的定义应该尽量详细,至少需要指定其类 型。
4. v-for设置键值,在组件上总是必须用key 配合v-for,以便维护内部组件及其子组件的状态。甚至在元素上维护可预测行为。
5. 避免v-for 和 v-if 用在一起
6. 为组件样式设置作用域,这条规则只对单组件有用,不一定要使用scoped特性。
7. 私有属性名,使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有属性使用 $_ 前缀。并附带一个命名空间以回避和其它作者的冲突 。
8. 组件文件 只要有能够拼接文件的构建系统,就把每个组件单独分成文件。
9. 单文件组件文件大小写。 单文件组件的文件名应该要么始终是单词大写开头,要么始终是横线连接。
10. 基础组件名, 应用特定样式和约定的基础组件 (也就是展示类的、无逻辑的或无状态的组件) 应该全部以一个特定的前缀开头,比如Base, App, V 。
11. 单列组件名, 只应该拥有单个活跃实例的组件应该以 The 前缀命名,以示其唯一性。
12. 紧密耦合的组件名,和父组件紧密耦合的子组件应该以父组件名作为前缀名。
13. 组件名的单词顺序。组件名应该以高级别单词开头,以描述性的修饰词结尾。
14. 自闭合组件。 在单文件组件、字符串模板和 JSX 中没有内容的组件应该是自闭合的——但在 DOM 模板里永远不要这样做。
15. 模板中的组件名大小写。 对于绝大多数项目来说,在单文件组件和字符串模板中组件名应该总是 PascalCase 的——但是在 DOM 模板中总是 kebab-case 的。
16. JS / JSX中的组件名大小写。JS/JSX 中的组件名应该始终是 PascalCase 的,尽管在较为简单的应用中只使用 Vue.component 进行全局组件注册时,可以使用 kebab-case 字符串。
17. 完整单词的组件名。 组件名应该倾向于完整单词而不是缩写。
18. Prop名大小写。 在声明 prop 的时候,其命名应该始终使用 camelCase,而在模板和 JSX 中应该始终使用 kebab-case。
19. 多个特性的元素。多个特性的元素应该分多行撰写。每个特性一行。
20. 模板中简单的表达式。组件模板应该包含简单的表达式,复杂的表达式则应该重构为计算属性或方法。
21. 简单的计算属性。 应该把复杂计算属性分割为尽可能多的简单的计算属性。
22. 带引号的特性值。非空的HTML 特性值应该始终带引号(单引号和双引号,选你JS的不用的那个)
23. 指令缩写。指令缩写 (用 : 表示 v-bind: 、用 @ 表示 v-on: 和用 # 表示 v-slot:) 应该要么都用要么都不用。
24. 组件 / 实例的选项的顺序。 组件/实例的选项应该有统一的顺序。
25. 元素特性的顺序。 元素 (包括组件) 的特性应该有统一的顺序。
26. 组件 / 实例选项中的空行。你可能想在多个属性之间增加一个空行,特别是在这些选项一屏放不下,需要滚动才能都看到的时候。
27. 单文件组件的顶级元素顺序。
28. 没有在v-if / v-else-if / v-else中使用key。如果一组 v-if + v-else 的元素类型相同,最好使用 key (比如两个 <div> 元素)。
29. scoped中的元素选择器。元素选择器应该避免在 scoped 中出现。
30. 隐性的父子组件通信。应该优先通过 prop 和事件进行父子组件之间的通信,而不是 this.$parent 或改变 prop。
31. 非Flux的全局状态管理。应该优先通过 Vuex 管理全局状态,而不是通过this.$root或一个全局事件总线。
32. 在VUE中this 可以使用 vm = this。