VUE 規(guī)范
1. 組件名稱應為多單詞,一個是駝峰寫法谜悟,一個是-的寫法
2. data必須是個函數(shù)微峰,避免全局污染
3.? prop定義類型在你提交的代碼中剥纷,prop 的定義應該盡量詳細,至少需要指定其類 ? 型瞬欧。
4.? v-for設置鍵值鳞骤,在組件上總是必須用key 配合v-for,以便維護內(nèi)部組件及其子組件的狀態(tài)黍判。甚至在元素上維護可預測行為豫尽。
5.? 避免v-for 和 v-if 用在一起
6. 為組件樣式設置作用域,這條規(guī)則只對單組件有用顷帖,不一定要使用scoped特性美旧。
7. 私有屬性名,使用模塊作用域保持不允許外部訪問的函數(shù)的私有性贬墩。如果無法做到這一點榴嗅,就始終為插件、混入等不考慮作為對外公共 API 的自定義私有屬性使用?$_?前綴陶舞。并附帶一個命名空間以回避和其它作者的沖突 嗽测。
8. 組件文件? 只要有能夠拼接文件的構建系統(tǒng),就把每個組件單獨分成文件肿孵。
9. 單文件組件文件大小寫唠粥。? 單文件組件的文件名應該要么始終是單詞大寫開頭,要么始終是橫線連接停做。
10. 基礎組件名晤愧, 應用特定樣式和約定的基礎組件 (也就是展示類的、無邏輯的或無狀態(tài)的組件) 應該全部以一個特定的前綴開頭蛉腌,比如Base官份, App, V 烙丛。
11. 單列組件名舅巷, 只應該擁有單個活躍實例的組件應該以?The?前綴命名,以示其唯一性河咽。
12. 緊密耦合的組件名钠右,和父組件緊密耦合的子組件應該以父組件名作為前綴名。
13. 組件名的單詞順序库北。組件名應該以高級別單詞開頭爬舰,以描述性的修飾詞結(jié)尾们陆。
14. 自閉合組件。 在單文件組件情屹、字符串模板和?JSX?中沒有內(nèi)容的組件應該是自閉合的——但在 DOM 模板里永遠不要這樣做坪仇。
15.? 模板中的組件名大小寫。 對于絕大多數(shù)項目來說垃你,在單文件組件和字符串模板中組件名應該總是 PascalCase 的——但是在 DOM 模板中總是 kebab-case 的椅文。
16. JS / JSX中的組件名大小寫。JS/JSX?中的組件名應該始終是 PascalCase 的惜颇,盡管在較為簡單的應用中只使用?Vue.component?進行全局組件注冊時皆刺,可以使用 kebab-case 字符串。
17. 完整單詞的組件名凌摄。 組件名應該傾向于完整單詞而不是縮寫羡蛾。
18. Prop名大小寫。 在聲明 prop 的時候锨亏,其命名應該始終使用 camelCase痴怨,而在模板和?JSX?中應該始終使用 kebab-case。
19. 多個特性的元素器予。多個特性的元素應該分多行撰寫浪藻。每個特性一行。
20. 模板中簡單的表達式乾翔。組件模板應該包含簡單的表達式爱葵,復雜的表達式則應該重構為計算屬性或方法。
21. 簡單的計算屬性反浓。 應該把復雜計算屬性分割為盡可能多的簡單的計算屬性萌丈。
22. 帶引號的特性值。非空的HTML 特性值應該始終帶引號(單引號和雙引號勾习,選你JS的不用的那個)
23.? 指令縮寫浓瞪。指令縮寫 (用?:?表示?v-bind:?、用?@?表示?v-on:?和用?#?表示?v-slot:) 應該要么都用要么都不用巧婶。
24. 組件 / 實例的選項的順序。 組件/實例的選項應該有統(tǒng)一的順序涂乌。
25. 元素特性的順序艺栈。 元素 (包括組件) 的特性應該有統(tǒng)一的順序。
26. 組件 / 實例選項中的空行湾盒。你可能想在多個屬性之間增加一個空行湿右,特別是在這些選項一屏放不下,需要滾動才能都看到的時候罚勾。
27. 單文件組件的頂級元素順序毅人。
28. 沒有在v-if / v-else-if / v-else中使用key吭狡。如果一組?v-if?+?v-else?的元素類型相同,最好使用?key?(比如兩個?<div>?元素)丈莺。
29. scoped中的元素選擇器划煮。元素選擇器應該避免在?scoped?中出現(xiàn)。
30. 隱性的父子組件通信缔俄。應該優(yōu)先通過 prop 和事件進行父子組件之間的通信弛秋,而不是?this.$parent?或改變 prop。
31.? 非Flux的全局狀態(tài)管理俐载。應該優(yōu)先通過?Vuex?管理全局狀態(tài)蟹略,而不是通過this.$root或一個全局事件總線。
32. 在VUE中this 可以使用? vm = this遏佣。