單文件組件要麼始終以大寫字母開頭(PascalCase)
要麼始終用-鏈接(kebab-case)
單詞大寫開頭對於代碼編輯器的自動補全最爲友好,由於這使得咱們在 JS(X) 和模板中引用組件的方式儘量的一致。然而,混用文件命名方式有的時候會致使大小寫不敏感的文件系統的問題,這也是橫線鏈接命名一樣徹底可取的緣由。vue
應用特定樣式和約定的基礎組件 (也就是展現類的、無邏輯的或無狀態的組件) 應該所有以一個特定的前綴開頭,好比 Base、App 或 V。bash
**反例**
components/
|- button.vue
|- loading.vue
|- slide.vue
複製代碼
**正例**
components/
|- BaseButton.vue
|- BaseLoading.vue
|- BaseSlide.vue
複製代碼
單個活躍實例的組件應該以 The
前綴命名,以示其惟一性
這不意味着組件只可用於一個單頁面,而是每一個頁面只使用一次。這些組件永遠不接受任何 prop,由於它們是爲你的應用定製的,而不是它們在你的應用中的上下文。若是你發現有必要添加 prop,那就代表這其實是一個可複用的組件,只是目前在每一個頁面裏只使用一次。編輯器
**反例**
components/
|- SaleManage.vue
|- ImportExcel.vue
複製代碼
**正例**
components/
|- TheSaleManage.vue
|- TheImportExcel.vue
複製代碼
和父組件緊密耦合的子組件應該以父組件的命名爲前綴.若是一個組件只在其父組件某個場景下有意義,這層關係應該體如今組件名上,由於編輯器一般按照首字母順序組織文件.ide
**反例**
components/
|- SearchBox.vue
|- SearchItem.vue
|- SearchButton.vue
複製代碼
**正例**
components/
|- SearchBox.vue
|- SearchBoxItem.vue
|- SearchBoxButton.vue
複製代碼
組件名應該以高級別的 (一般是通常化描述的) 單詞開頭,以描述性的修飾詞結尾。spa
**反例**
components/
|- ClearSearchButton.vue
|- ExcludeFromSearchInput.vue
|- LaunchOnStartupCheckbox.vue
|- RunSearchButton.vue
|- SearchInput.vue
|- TermsCheckbox.vue
複製代碼
**正例**
components/
|- SearchButtonClear.vue
|- SearchButtonRun.vue
|- SearchInputQuery.vue
|- SearchInputExcludeGlob.vue
|- SettingsCheckboxTerms.vue
|- SettingsCheckboxLaunchOnStartup.vue
複製代碼
編輯器中的自動補全已經至關友好,讓書寫長的組件名的代價已經能夠微乎其微,一樣的效率更易於理解,何樂而不爲?3d
**反例**
components/
|- soManage.vue
|- woManage.vue
複製代碼
**正例**
components/
|- SaleOrderManage.vue
|- WorkOrderManage.vue
複製代碼
在聲明時始終採用(camelCase)
,在模板和 JSX 中應該始終使用( kebab-case)
。
單純的遵循每一個語言的約定。在 JavaScript 中更天然的是 camelCase。而在 HTML 中則是 kebab-case。code
**反例**
props: {
'greeting-text': String
}
<WelcomeMessage greetingText="hi"/>
複製代碼
**正例**
props: {
greetingText: String
}
<WelcomeMessage greeting-text="hi"/>
複製代碼