前端开发规范参考
前言:前端開發(fā)規(guī)范參考分享
前端開發(fā)規(guī)范參考
- 一、規(guī)范目的
- 二、通用規(guī)范
- 三、框架開發(fā)規(guī)范
- 1、項目使用框架
- 2、學(xué)習(xí)資料
- 四、編碼規(guī)范
- 1、HTML
- 2、CSS+LESS
- 3、REACT+TS
- 五、圖片使用規(guī)范
- 六、團隊約定
- 七、圖片大小規(guī)則
- 八、圖片質(zhì)量要求
- 九、圖片引入
- 十、組件編寫規(guī)范
- 十一、工程目錄規(guī)范
- 十二、疑問解答與加群交流學(xué)習(xí)
一、規(guī)范目的
- 好的代碼規(guī)范能夠提高代碼的可讀性便于協(xié)作溝通,好的開發(fā)模式能夠避免不必要的 bug 出現(xiàn)。
- 為了規(guī)范和約束團隊成員的開發(fā)編碼,提升團隊協(xié)作能力,提高開發(fā)效率,使開發(fā)流程更加規(guī)范化。
- 有利于前端項目的維護(hù)性和擴展性。
二、通用規(guī)范
- 前端編輯器統(tǒng)一使用 Visual Studio Code (簡稱 VSCode)。
- 所有代碼縮進(jìn)嚴(yán)格按照一個TAB 鍵執(zhí)行,一個TAB 鍵用兩個空格代替。 (請自行在vscode中設(shè)置tab鍵)。
前端開發(fā)規(guī)范包括以下幾方面
Ⅰ、框架開發(fā)規(guī)范
Ⅱ、編碼規(guī)范
Ⅲ、圖片使用規(guī)范
Ⅳ、組件編寫規(guī)范
V、工程目錄規(guī)范
三、框架開發(fā)規(guī)范
1、項目使用框架
技術(shù)棧: UMI + REACT + DVA +ANTD+ TYPESCRIPT +LESS+ESLINT
2、學(xué)習(xí)資料
UMI: https://umijs.org/zh/guide/#%E7%89%B9%E6%80%A7
REACT:http://caibaojian.com/react/
DVA:https://dvajs.com/guide/
ANTD :https://ant.design/docs/react/introduce-cn
TYPESCRIPT: https://typescript.bootcss.com/
四、編碼規(guī)范
1、HTML
- 或
- 內(nèi)。
不推薦
推薦
<Drawerclosable={false}width="500px"title="商品詳情"height="600px"> …… </Drawer>2、CSS+LESS
2.1 通用規(guī)范
不推薦
推薦
.ant-btn-primary{margin: 0 10px 4px 0; }- 圖片的命名原則:根據(jù)模塊名稱命名,如一張圖片多個模塊使用,則根據(jù)功能命名。如:login.svg,icon_close.png
- class命名原則:根據(jù)功能+標(biāo)簽命名(中間加“-”隔開),如一個標(biāo)簽存在多個顯示效果,則根據(jù)功能+標(biāo)簽+顯示效果命名。如:search-form,ant-divider-horizontal,ant-divider-inline。
2.2 LESS編寫規(guī)范
1.運算規(guī)范
- 運算符前后統(tǒng)一加一個空格。
- 注意運算單位,單位同時參與運算,乘除運算時需要特別注意,注:10px不等于10
Extend 名: 使用 -ext 結(jié)尾。
推薦屬性書寫順序: 顯示屬性 -> 自身屬性 -> 文本屬性和其他修飾。
使用變量命名常用的數(shù)字和顏色。
列表型屬性值 書寫在單行時, 后必須跟一個空格。
每行不得超過 50 個字符,除非單行不可分割。
當(dāng)一個 rule 包含多個 selector 時,每個選擇器聲明必須獨占一行。
屬性選擇器中的值必須用雙引號包圍。
屬性定義必須另起一行。
屬性定義后必須以分號結(jié)尾。
推薦選擇器的嵌套層級應(yīng)不大于 3 級,位置靠后的限定條件應(yīng)盡可能精確
url() 函數(shù)中的路徑加引號 如:background
url(“bg.png”); RGB顏色值必須使用十六進(jìn)制記號形式 #rrggbb,少使用 rgb()
- 帶有alpha的顏色可以使用 rgba()。使用 rgba() 時每個逗號后必須保留一個空格。
3、REACT+TS
(1)、 通用規(guī)范
- 變量、常量、方法名、對象應(yīng)采用小駝峰方式命名。 如:defaultData
- 類、組件應(yīng)采用大駝峰式方式命名。如:SearchForm
不推薦
推薦
dispatch({ type: 'home/fetchAuth', payload: { 'account_name':account_name, 'account_id':account_id }, callback: res => {//實際權(quán)限路由數(shù)組 let autRoutes = getRealAuthoritRoutes(routes,res.data) dispatch({ type: 'home/storeAllRoutesAndBtns', payload: autRoutes }); } });(2)、REACT編寫規(guī)范
- 高階組件是為組件添加行為和功能的函數(shù),因此使用如上形式的詞有助于對其功能進(jìn)行理解。
建議使用箭頭函數(shù)聲明函數(shù)組件。
推薦除頂層或路由級組件以外,所有組件均在概念上實現(xiàn)為純組件(Pure Component)。
禁止為繼承自PureComponent的組件編寫shouldComponentUpdate實現(xiàn)。
建議將各個組件中的JSX的層級控制在3層以內(nèi)。
(3)、TS編寫規(guī)范
禁止隱式使用 any ; 如果有必須要聲明為 any , 必須注釋聲明為什么要使用 any 類型定義, – noImplicitAny
基礎(chǔ)代碼封裝要使用 泛型 來做類型定義
多使用 const 定義變量
私有屬性和方法必須使用 private 關(guān)鍵字,
暴露給外部的方法: 使用 public 關(guān)鍵字, 避免內(nèi)部屬性直接暴露給外部, 可以使用接口暴露
避免強行繼承, 可以使用組合, 或者是聲明接口(interface) 使用(implements)
五、圖片使用規(guī)范
原則:優(yōu)先使用iconfont正常情況下圖片格式時按照ui給定格式下載,無需自己額外轉(zhuǎn)換圖片格式,如若需要前端自己切圖,圖片格式應(yīng)選擇一下幾種格式:
- 優(yōu)秀的壓縮算法使其在一定程度上保證圖像質(zhì)量的同時將體積變得很小。
- 可插入多幀,從而實現(xiàn)動畫效果。
- 可設(shè)置透明色以產(chǎn)生對象浮現(xiàn)于背景之上的效果。
- 由于采用了8位壓縮,最多只能處理256種顏色,故不宜應(yīng)用于真彩色圖片。
- 優(yōu)點:文本文件、體積小、不失真、兼容性好
- 可伸縮矢量圖形
- SVG 使用 XML 格式定義圖形
- SVG 圖像在放大或改變尺寸的情況下其圖形質(zhì)量不會有所損失
- 是萬維網(wǎng)聯(lián)盟的標(biāo)準(zhǔn)
- 支持256色調(diào)色板技術(shù),文件體積小。
- 無損壓縮
- 最高支持48位真彩色圖像以及16位灰度圖像。
- 支持Alpha通道的透明/半透明特性。
- 支持圖像亮度的Gamma校準(zhǔn)信息。
- 支持存儲附加文本信息,以保留圖像名稱、作者、版權(quán)、創(chuàng)作時間、注釋等信息。
- 漸近顯示和流式讀寫,適合在網(wǎng)絡(luò)傳輸中快速顯示預(yù)覽效果后再展示全貌。
- 使用CRC防止文件出錯。
- 最新的PNG標(biāo)準(zhǔn)允許在一個文件內(nèi)存儲多幅圖像。
- 適用于儲存24位元全采影像
- 采取的壓縮方式通常為有損壓縮
- 不支持透明或動畫
- 壓縮比越高影像耗損越大,失真越嚴(yán)重
- 壓縮比在10左右肉眼無法�辨出壓縮圖與原圖的差別
- 同時提供有損壓縮和無損壓縮兩種圖片文件格式
- 文件體積小,無損壓縮后,比 PNG 文件少了 45% 的文件大小;有損壓縮后,比 JPEG 文件少了 25% - 34% 文件大小
- 瀏覽器兼容差,目前只支持客戶端 Chrome 和 Opera 瀏覽器以及安卓原生瀏覽器(Andriod 4.0+)
六、團隊約定
原則:優(yōu)先考慮使用SVG代替其他格式圖片
- 多以商品圖等照片類圖片形式存在,顏色較為豐富,文件體積較大
- 優(yōu)先考慮 JPEG 格式,條件允許的話優(yōu)先考慮 WebP 格式
- 盡量不使用PNG格式,PNG8 色位太低,PNG24 壓縮率低,文件體積大
- 背景圖多為圖標(biāo)等顏色比較簡單、文件體積不大、起修飾作用的圖片
- PNG 與 GIF 格式,優(yōu)先考慮使用 PNG 格式,PNG格式允許更多的顏色并提供更好的壓縮率
- 圖像顏色比較簡單的,如純色塊線條圖標(biāo),優(yōu)先考慮使用 PNG8 格式,避免不使用 JPEG 格式
- 圖像顏色豐富而且圖片文件不太大的(40KB 以下)或有半透明效果的優(yōu)先考慮 PNG24 格式
- 圖像顏色豐富而且文件比較大的(40KB - 200KB)優(yōu)先考慮 JPEG 格式 條件允許的,優(yōu)先考慮 WebP 代替 PNG 和 JPEG 格式
七、圖片大小規(guī)則
- PC平臺單張的圖片的大小應(yīng)小于200KB。
- 移動平臺單張的圖片的大小應(yīng)小于100KB。
八、圖片質(zhì)量要求
- 上線的圖片都應(yīng)該經(jīng)過壓縮處理,壓縮后的圖片不應(yīng)該出現(xiàn)肉眼可感知的失真區(qū)域
- 60質(zhì)量的JPEG格式圖片與質(zhì)量大于60的相比,肉眼已看不出明顯的區(qū)別,因此保存 JPEG 圖的時候,質(zhì)量一般控制在60,若保真度要求高的圖片可適量提高到 80,圖片大小控制在200KB 以內(nèi)
九、圖片引入
Data URIs(base64編碼)使用建議
- 適合更新頻率高的小圖片,如某些具備自定義功能的標(biāo)題icon等
- 轉(zhuǎn)換成 Base64 編碼的圖片應(yīng)小于 2KB
- 移動端不使用 Base64 編碼
- 要兼容 IE6/IE7 的不使用
十、組件編寫規(guī)范
原則:可復(fù)用代碼、邏輯請抽離成單獨方法或組件,組件代碼盡量控制在200行以內(nèi),以增加代碼復(fù)用性和可讀性。除命名、引用外,組件編寫遵循react+ts編寫規(guī)范。
1、 命名
2、注釋:
- 多行注釋:組件用途、參數(shù)說明、返回值描述和重要邏輯注釋等占用多行時使用多行注釋
- 單行注釋:簡單邏輯注釋等占用單行時使用單行注釋
3、編寫
4、引用
十一、工程目錄規(guī)范
一、目錄規(guī)范
1.項目主要目錄結(jié)構(gòu)
├─config //umi基礎(chǔ)配置文件,項目路由文件所在地
├─src //項目源碼目錄
├─package.json //項目依賴配置文件
2.src文件主要目錄:
- 圖片統(tǒng)一放在assets文件下,如某一個模塊使用圖標(biāo)較多,可在assets下再加一個文件夾,以模塊名命名即可。
- 公共業(yè)務(wù)組件統(tǒng)一放在components下。
- src/models、src/ services文件下放置多個模塊重復(fù)調(diào)用接口數(shù)據(jù)。
- 公共方法、工具類統(tǒng)一放置在utils 。
- pages:以頁面一級路由(模塊)為單位存放代碼并命名,每個模塊下包含一下文件:
├─index.jsx //頁面邏輯
├─model.js //store:處理接口返回數(shù)據(jù)
├─service.js //私有api接口
├─style.less //私有樣式文件
├─mock.js //接口模擬數(shù)據(jù)
├─views //私有組件存放地,非必須
十二、疑問解答與加群交流學(xué)習(xí)
總結(jié)
- 上一篇: c#实现上位机数据采集的项目总结
- 下一篇: 前端开发规范[js篇]