我们挑选了一些基础命名约定来规范我们的代码,如果您想看全部的风格指南,请移步,Vue.js风格指南

组件名为多个单词

组件名应该始终是多个单词的,根组件 App 以及 、 之类的 Vue 内置组件除外。
这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。

  1. // 反例
  2. export default {
  3. name: 'Todo',
  4. // ...
  5. }
  1. // 好例子
  2. export default {
  3. name: 'TodoItem',
  4. // ...
  5. }

单文件组件文件的大小写

单文件组件的文件名应该是小写横线连接 (kebab-case)。

  1. // 反例
  2. |- components
  3. |- mycomponent.vue
  4. |- components
  5. |- myComponent.vue
  1. // 好例子
  2. |- components
  3. |- my-component.vue

基础组件名

应用特定样式和约定的基础组件 (也就是展示类的、无逻辑的或无状态的组件) 应该全部以一个特定的前缀开头,比如 BaseAppV

  1. // 反例
  2. |- components
  3. |- MyButton.vue
  4. |- VueTable.vue
  5. |- Icon.vue
  1. // 好例子
  2. |- components
  3. |- base-button.vue
  4. |- base-table.vue
  5. |- base-icon.vue
  6. |- components
  7. |- app-button.vue
  8. |- app-table.vue
  9. |- app-icon.vue
  10. |- components
  11. |- v-button.vue
  12. |- v-table.vue
  13. |- v-icon.vue

紧密耦合的组件名

和父组件紧密耦合的子组件应该以父组件名作为前缀命名。
如果一个组件只在某个父组件的场景下有意义,这层关系应该体现在其名字上。因为编辑器通常会按字母顺序组织文件,所以这样做可以把相关联的文件排在一起。

  1. // 反例
  2. components/
  3. |- TodoList.vue
  4. |- TodoItem.vue
  5. |- TodoButton.vue
  6. components/
  7. |- SearchSidebar.vue
  8. |- NavigationForSearchSidebar.vue
  1. // 好例子
  2. |- components
  3. |- todo-list.vue
  4. |- todo-list-item.vue
  5. |- todo-list-item-button.vue
  6. |- components
  7. |- search-sidebar.vue
  8. |- search-sidebar-navigation.vue

组件名中的单词顺序(名词+动词)

组件名应该以高级别的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。

  1. // 反例
  2. |- components
  3. |- ClearSearchButton.vue
  4. |- ExcludeFromSearchInput.vue
  5. |- LaunchOnStartupCheckbox.vue
  6. |- RunSearchButton.vue
  7. |- SearchInput.vue
  8. |- TermsCheckbox.vue
  1. // 好例子
  2. |- components
  3. |- search-button-clear.vue
  4. |- search-button-run.vue
  5. |- search-input-query.vue
  6. |- search-input-exclude-glob.vue
  7. |- settings-checkbox-terms.vue
  8. |- settings-checkbox-launch-on-startup.vue

模板中的组件名大小写

模板中的组件名是小写横线连接 (kebab-case)。

  1. // 反例
  2. <mycomponent/>
  3. <myComponent/>
  1. // 好例子
  2. <my-component></my-component>

完整单词的组件名

组件名应该倾向于完整单词而不是缩写。

  1. // 反例
  2. |- components
  3. |- SdSettings.vue
  4. |- UProfOpts.vue
  1. // 好例子
  2. |- components
  3. |- student-dashboard-settings.vue
  4. |- user-profile-options.vue