好的命名規範可讓你不用每天爲取名字而苦惱、找bug時,更快的定位到bug在哪一個位置javascript
.nav某一塊展現/功能區域 (div)
.nav__item這塊展現/功能區域(div)裏面的某個元素,好比: nav__item
.nav__item--hide/ .nav__item--open 某個元素或者某個塊的狀態html
我曾經給一個元素取了個class爲advertisement,後來測試人員發現頁面上這塊元素不見了。後來發現360瀏覽器開啓去廣告模式,直接把這個div給刪了。vue
使用正常的時態java
函數和屬性的命名是有區別的git
動賓結構就是 doSomething,這樣的函數命名含義明確
好比: openFile, setName, addNumber...github
- **若是是屬性命名,建議使用定語+名詞**
好比 fileName, maxLength, textSize瀏覽器
Ant.design 的 React 組件是下面這樣的時候,我感受到一種自由的味道。首先,組件名可使用原生 HTML 標籤名,意味着不再用較勁腦汁去規避原生 HTML 標籤了。另外,這些組件都使用了首字母大寫標籤名,使它們很容易地與原生小寫的 HTML 標籤區分。
ReactDOM.render( <div> <Button type="primary">Primary</Button> <Input placeholder="Basic usage" /> <Select defaultValue=".com" style={{ width: 70 }}> <Option value=".com">.com</Option> <Option value=".jp">.jp</Option> <Option value=".cn">.cn</Option> <Option value=".org">.org</Option> </Select> </div>, mountNode );
應用特定樣式和約定的基礎組件 (也就是展現類的、無邏輯的或無狀態的組件) 應該所有以一個特定的前綴開頭,好比 Base、App 或 V。eclipse
**反例** 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
組件名應該以高級別的 (一般是通常化描述的) 單詞開頭,以描述性的修飾詞結尾。
**反例** 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
在聲明時始終採用(camelCase),在模板和 JSX 中應該始終使用( kebab-case)。
單純的遵循每一個語言的約定。在 JavaScript 中更天然的是 camelCase。而在 HTML 中則是 kebab-case。
**反例** props: { 'greeting-text': String } <WelcomeMessage greetingText="hi"/> **正例** props: { greetingText: String } <WelcomeMessage greeting-text="hi"/>
變量命名使用主要集中在data和methods中
名詞:名詞太多,大體分爲複數、後綴加Arr、加Obj之類做爲約定規則
狀態布爾型:
1.表示是否是,用is+ :如 isEmpty
dd/remove,添加/移除
add/delete,添加/刪除
insert/delete,插入/刪除
start/stop,開始/中止
begin/end,開始/結束
send/receive,發送/接收
get/set,取出/設置
get/release,獲取/釋放
put/get,放入/取出
up/down,向上/向下
show/hide,顯示/隱藏
open/close,打開/關閉
increment/decrement,增長/減小
lock/unlock,鎖/解鎖
next/previous,下一個/前一個
create/destroy,建立/銷燬
min/max,最小/最大
visible/invisible,可見/不可見
pop/push,出棧/入棧
store/query,存儲/查詢
結合業務:
表單提交:submit、send
表單增刪改查:add、delete、update、search、reset
上傳附件:upload
關閉打開彈窗:open/close
檢查:check
CSS命名方式=》BEM
如何定義一個好的變量名
理解CSS命名規範--BEM
聊聊 Vue 組件命名那些事
談談函數的命名規範
vue組件命名指南,不爲取名而糾結