整體原則:極簡、極快、解耦
主要適用範圍:vue 單頁項目+javascript
原則:文件少、層級淺、資源集中、相對獨立互不影響
基本結構:css
. |_ node_modules |_ dist |_ src |_ assets // 公共資源 |_ img // 全局圖片 |- favicon.png |- common.js // 全局公用 js |- common.less // 重置樣式表 + 自定義全局樣式 |- mixin.less // 全局 less 變量 |- template.html // 模板 |_ components // 組件 |_toast |- index.vue |- index.less |- index.js // 全部組件的集合 |_ pages // 具體頁面 |_ index // 首頁 |- index.vue |- index.less |- good.png // 少許本頁面下獨自使用的圖片 |- img // 兩個以上頁面都用到的圖片單獨抽離防止 |- copy.jpg |_ temp // 模板 |- index.vue |- index.less |_ router // 路由 |- index.js |_ vuex // vuex 插件 |- index.js |- App.vue |- main.js
說明:html
文件命名統一使用小寫字母,必要的時候能夠加中劃線 -
頁面文件名不宜過長,裏面的文件統一以 index 爲前綴,index.vue、index.less
vue
父子組件命名:java
|_ button-group // 組件組合 |_ button // 組件 |_ cell // 父組件 |_ cell-item // 子組件
藉助 Eslint 以及編輯器的代碼格式化功能確保代碼格式統一
Eslint 使用 JavaScript standard 代碼規範node
規則:所有用雙引號,小寫。每一個頁面的 css 命名以文件外層文件夾名字加 _index
做爲開頭(因此說一開始文件夾名字不宜過長),統一使用下劃線輔助 _
好比:android
.about_index{ .tit{ font-size: 18px; } .nav{ margin-bottom: 20PX; } }
緣由:下劃線易選中複製,js 中不容許有中劃線,js 操做類名夾帶中劃線互相混在一塊兒,加劇記憶負擔,容易混淆;文件名稱都是不重複的,以文件名做爲此頁面類名的開頭能夠確保不會有重複,而後此類名下的命名可與其餘頁面重複,依靠層級限制類名可重複使用,極大減輕樣式命名的工做量git
ul、ol
下嵌套 li
,dl
下嵌套dt、dd
,p、dt、h
標籤裏面不嵌套塊元素,a
標籤不能嵌套 a
,行內元素不能嵌套塊元素img、a、strong、em、h1-h3
span、em、strong
格式化成無語義標籤,i
統一給圖標使用"javascript:;"
而非 "void(0)"
border-radius: 2px
值不能爲單數,最小爲 2px
top
值通常寫 45%
,50%
看起來會偏下iOS、android
320~750 320 480 640 iphoneX
等css、js
的請求數量和包大小,超過 150kb 考慮作拆分