VUE-CLI項目代碼規範

V1.0.1(不斷更新中,歡迎討論建議)

作者:Lisa[[email protected]]

目錄

一、命名規則... 1

二、CSS書寫規範... 2

三、JS書寫規範... 2

四、Vue.js書寫規範... 3

4.1單個.vue文件書寫規範... 3

4.2 Vue.js組件相關規範... 3

4.3 Vuex和VueRouter相關規範... 3

4.4 Webpack相關規範... 4

 

一、命名規則

1.目錄名全部小寫,srcs下層目錄使用複數形式。

2.圖片字體影音等資源文件名稱全部小寫或者全部大寫,使用下劃線_連接。

3.除了約定俗成的文件名,代碼類文件名稱使用駝峯式命名。

4.css的class名稱全部小寫,使用中劃線-連接。

5.js中常量名稱全部大寫,使用下劃線_連接,變量(包括方法名稱)使用駝峯式命名。

二、CSS書寫規範

1.因爲Vue.js的單頁面特性和組件的複用特性,css中儘量不要使用id,而是使用class代替。

2..vue文件中使用style必須加scoped,防止樣式衝突。

3.跨組件/插件樣式使用[.本頁面class >>> .組件/插件class]的形式書寫css選擇器。

4.圖片引用多種方式都可以,但是如果引用static目錄下圖片,請記得驗證編譯後是否正常顯示。

5.全局樣式文件可以放在main.js引入,其他樣式在單獨頁面引入。

三、JS書寫規範

1.除了服務器端編譯文件和部分特殊情況,js文件統一使用import和export對接組件/插件。

2.通用方法寫在單獨的utils.js中,在main.js中使用Vue.prototype.$utils = utils掛載。包括一些常量等,都可以這樣處理。

3.Vue.js中的全局過濾器、指令等,在main.js中直接加載。全局組件方法使用Vue.use在main.js中加載。部分頁面通用組件方法,可以在單獨頁面使用mixins加載。

4.代碼中儘量避免if(...){..} else if(...){...} else if(...){...}的存在,使用if(..){ ... return} if(..){ ... return} ...的邏輯。

5.儘量避免遞歸函數的調用,如果必須使用,使用let定義變量,不要使用var。

6.注意this的指向,可以通過箭頭函數避免this的改變。

四、Vue.js書寫規範

4.1單個.vue文件書寫規範

1.原則上Vue.js中不要進行dom操作。

2.不要使用setTimeout(...,0)來處理衝突,使用$nextTick替代。

3.data中的複雜數據,當只需要改變部分值而不是值引用的時候,需要使用$set來賦值。

4.除了特殊邏輯(例如組件傳值),頁面初始化數值的方法寫在mounted(非緩存頁面)或者activated(緩存頁面)中。

5.設置組件/插件原生方法,記得加上.native,例如@[email protected]等。但是插件自定義的方法是不需要的。部分插件會自定義例如@change@focus方法等,注意查看api文檔。

6.組件設置屬性的時候,非字符串需要使用:XX="false"的形式,如果使用:形式傳遞字符串,請加引號,例如:XX="'false'"。

4.2 Vue.js組件相關規範

1.儘量使用組件的形式來複用代碼和解耦合。

2.簡單的子組件向父組件傳值使用$emit,複雜的傳值儘量使用Vuex,使用computed獲取實時改變的值。

4.3 Vuex和VueRouter相關規範

1.實時狀態儘量使用Vuex處理,但是注意Vuex內的數據刷新後就會消失,需要緩存的數據仍然需要使用sessionStorage和localStorage。

2.VueRouter請使用() =>import('@/xxx/xxx')或者resolve => require(['@/xxx/xxx'], resolve)的形式懶加載頁面。

3.請使用動態路由來處理頁面權限。通常意義上的動態路由是指路由跳轉時候動態匹配用戶權限。此外可以使用addRouters方式實時加載路由。後者是真實意義上的動態路由。

4.4 Webpack相關規範

1.打包時候根據情況拆分js文件,不要將全部內容打包到vendors.js中。

2.對於圖片字體影音等資源文件,打包時候注意限制大小,太大的文件不要打到js中。

3.對於提取出來的圖片字體影音,包括css文件等,爲了部署方便,請使用相對目錄處理publicPath。

 

感謝dars貢獻建議。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章