说明

组件名中的单词顺序

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

你可能会疑惑:

“为什么我们给组件命名时不多遵从自然语言呢?”

在自然的英文里,形容词和其它描述语通常都出现在名词之前,否则需要使用连接词。比如:

  • Coffee with milk
  • Soup of the day
  • Visitor to the museum

如果你愿意,你完全可以在组件名里包含这些连接词,但是单词的顺序很重要。

同样要注意在你的应用中所谓的“高级别”是跟语境有关的。比如对于一个带搜索表单的应用来说,它可能包含这样的组件:

 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

因为编辑器通常会按字母顺序组织文件,所以现在组件之间的重要关系一目了然。

你可能想换成多级目录的方式,把所有的搜索组件放到“search”目录,把所有的设置组件放到“settings”目录。我们只推荐在非常大型 (如有 100+ 个组件) 的应用下才考虑这么做,因为:

  • 在多级目录间找来找去,要比在单个 components 目录下滚动查找要花费更多的精力。
  • 存在组件重名 (比如存在多个 ButtonDelete 组件) 的时候在编辑器里更难快速定位。
  • 让重构变得更难,因为为一个移动了的组件更新相关引用时,查找/替换通常并不高效。

正例

components/
|- SearchButtonClear.vue
|- SearchButtonRun.vue
|- SearchInputQuery.vue
|- SearchInputExcludeGlob.vue
|- SettingsCheckboxTerms.vue
|- SettingsCheckboxLaunchOnStartup.vue

反例

components/
|- ClearSearchButton.vue
|- ExcludeFromSearchInput.vue
|- LaunchOnStartupCheckbox.vue
|- RunSearchButton.vue
|- SearchInput.vue
|- TermsCheckbox.vue
文档更新时间: 2021-05-13 10:40   作者:姚连洲