前言
自古中國取名文化博大進深,往往取一個好的名字而絞盡腦汁.那么一個好名字能夠帶來什么呢?
- 名字的內涵必需和使用者固有的本性相配套
- 不和名人重名、不易重名、創意新穎,真正體現通過名字以區分人的作用
- 響亮上口讀起來流暢好聽,協音美好,因為聲音涵意同樣影響人,對人也有條件反射
- 易寫易記錄忌諱筆畫過于繁索
在程序中的命名又何嘗不是呢?
- 組件的命名和它的功能相配套
- 不與其他業務組件重名,讓人一眼就區分
- 不一定要好聽酷炫,但是實用.讓開發者產生條件反射,看到命名就會想到這個組件的實用場景
- 易寫易記,短小卻精煉,不繁瑣
單文件組件的大小寫
單文件組件要么始終以大寫字母開頭(PascalCase)
要么始終用-連接(kebab-case)
單詞大寫開頭對于代碼編輯器的自動補全最為友好,因為這使得我們在 JS(X) 和模板中引用組件的方式盡可能的一致。然而,混用文件命名方式有的時候會導致大小寫不敏感的文件系統的問題,這也是橫線連接命名同樣完全可取的原因。
基礎組件命名
應用特定樣式和約定的基礎組件 (也就是展示類的、無邏輯的或無狀態的組件) 應該全部以一個特定的前綴開頭,比如 Base、App 或 V。
**反例**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
復制代碼
緊密耦合的組件名
和父組件緊密耦合的子組件應該以父組件的命名為前綴.如果一個組件只在其父組件某個場景下有意義,這層關系應該體現在組件名上,因為編輯器通常按照首字母順序組織文件.
**反例**components/|- SearchBox.vue|- SearchItem.vue|- SearchButton.vue
復制代碼
**正例**components/|- SearchBox.vue|- SearchBoxItem.vue|- SearchBoxButton.vue
復制代碼
組件命中的單詞順序
組件名應該以高級別的 (通常是一般化描述的) 單詞開頭,以描述性的修飾詞結尾。
**反例**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
復制代碼
完整單詞的組件名
編輯器中的自動補全已經相當友好,讓書寫長的組件名的代價已經可以微乎其微,同樣的效率更易于理解,何樂而不為?
**反例**components/|- soManage.vue|- woManage.vue
復制代碼
**正例**components/|- SaleOrderManage.vue|- WorkOrderManage.vue
復制代碼
prop的大小寫
在聲明時始終采用(camelCase)
,在模板和 JSX 中應該始終使用( kebab-case)
。
單純的遵循每個語言的約定。在 JavaScript 中更自然的是 camelCase。而在 HTML 中則是 kebab-case。
**反例**
props: {'greeting-text': String
}
<WelcomeMessage greetingText="hi"/>
復制代碼
**正例**
props: {greetingText: String
}
<WelcomeMessage greeting-text="hi"/>
復制代碼