Vue前端書(shū)寫規(guī)范大全(非常詳細(xì)!)
命名規(guī)范
s:表示字符串。例如:sName,sHtml;
n:表示數(shù)字。例如:nPage,nTotal;
b:表示邏輯。例如:bChecked,bHasLogin;
a:表示數(shù)組。例如:aList,aGroup;
r:表示正則表達(dá)式。例如:rDomain,rEmail;
f:表示函數(shù)。例如:fGetHtml,fInit;
o:表示以上未涉及到的其他對(duì)象,例如:oButton,oDate;
1:作用域不大臨時(shí)變量可以簡(jiǎn)寫,比如:str,num,bol,obj,fun,arr。
2:循環(huán)變量可以簡(jiǎn)寫,比如:i,j,k等。
標(biāo)準(zhǔn)變量采用駝峰式命名
ID在變量名中全大寫
URL在變量名中全大寫
Android在變量名中大寫第一個(gè)字母
iOS在變量名中小寫第一個(gè),大寫后兩個(gè)字母
常量全大寫,用下劃線連接
構(gòu)造函數(shù),大寫第一個(gè)字母
var thisIsMyName;
var goodID;
var reportURL;
var AndroidVersion;
var iOSVersion;
var MAX_COUNT = 10;
function Person(name) {
this.name = name;
}指令規(guī)范:
1.為v-for設(shè)置Key值。(不建議 用index 作為 key,和沒(méi)寫基本上沒(méi)區(qū)別,因?yàn)椴还苣銛?shù)組的順序怎么顛倒,index 都是 0, 1, 2 這樣排列,導(dǎo)致 Vue 會(huì)復(fù)用錯(cuò)誤的舊子節(jié)點(diǎn),做很多額外的工作)
2.規(guī)避v-if和v-for用在一起?;蛘咴黾右粚?/p>
3.函數(shù)中統(tǒng)一使用_this=this來(lái)解決全局指向問(wèn)題。
4.復(fù)用多用v-show少用v-if
路由
1.路由至少包含三個(gè)選項(xiàng):path、name、component。path統(tǒng)一小寫;name對(duì)應(yīng)于組件中的name,大寫開(kāi)頭駝峰;component組件駝峰。名稱大寫開(kāi)頭的組件
Template模板文件
1.相同的卡片布局,首先整合數(shù)據(jù),盡量使用循環(huán)方式去增加,避免變更多處的問(wèn)題。
2.標(biāo)簽語(yǔ)義化,避免清一色的div元素
3.DOM的層級(jí)數(shù)盡可能少,優(yōu)化渲染速度。
4.樣式class的命名:統(tǒng)一以小寫字母開(kāi)頭,小寫字母、下劃線和數(shù)字組成。命名中盡量避免使用中文拼音,應(yīng)該采用更簡(jiǎn)明有語(yǔ)義的英文單詞進(jìn)行組合。不建議使用駝峰法命名class屬性。使用下劃線的目的是為了和第三方庫(kù)中的命名沖突。例如:xx_left,xx_line。
5.及時(shí)模塊化
我們?cè)趯?shí)際進(jìn)行組件抽離工作的時(shí)候,需要考慮到不要過(guò)度的組件化
在決定是否將代碼分開(kāi)時(shí),無(wú)論是 Javascript 邏輯還是抽離為新的組件,都需要考慮以下幾點(diǎn):
是否有足夠的頁(yè)面結(jié)構(gòu)/邏輯來(lái)保證它?
- 代碼重復(fù)(或可能重復(fù))?
- 它會(huì)減少需要書(shū)寫的模板嗎?
- 性能會(huì)收到影響嗎?
- 是否會(huì)在測(cè)試代碼的所有部分時(shí)遇到問(wèn)題?
- 是否有一個(gè)明確的理由?
- 這些好處是否超過(guò)了成本?
css:
1.使用 scoped關(guān)鍵字,約束樣式生效的范圍。
2.避免使用標(biāo)簽選擇器(效率低、損耗性能)。
其它注意事項(xiàng)
變量應(yīng)該在最小的范圍內(nèi)定義,并盡可能的保持最少的活動(dòng)時(shí)間。
不要在代碼中重復(fù)使用相同意義的數(shù)字,用一個(gè)變量代替
對(duì)應(yīng)的方法應(yīng)該使用對(duì)應(yīng)的動(dòng)詞,例如:get/set, add/remove, create/destroy, start/stop, insert/delete, begin/end。
校驗(yàn)時(shí),先去校驗(yàn)公共庫(kù)查找是否有對(duì)應(yīng)校驗(yàn),有則使用,沒(méi)有則查看是否要多處使用,如果可復(fù)用,則進(jìn)行抽離。公共函數(shù),還是建議補(bǔ)全注釋,讓后面的人不需要重復(fù)造輪子。復(fù)雜的業(yè)務(wù)邏輯處理說(shuō)明、特殊情況的代碼處理說(shuō)明,對(duì)于特殊用途的變量、存在臨界值、使用了某種算法思路進(jìn)行注釋說(shuō)明
文件夾小寫,vue文件大寫
補(bǔ)充:結(jié)構(gòu)化規(guī)范
目錄文件夾及子文件規(guī)范
以下統(tǒng)一管理處均對(duì)應(yīng)相應(yīng)模塊
以下全局文件文件均以 index.js 導(dǎo)出,并在 main.js 中導(dǎo)入
以下臨時(shí)文件,在使用后,接口已經(jīng)有了,發(fā)版后清除
src 源碼目錄
|-- api 接口,統(tǒng)一管理
|-- assets 靜態(tài)資源,統(tǒng)一管理
|-- components 公用組件,全局文件
|-- filters 過(guò)濾器,全局工具
|-- icons 圖標(biāo),全局資源
|-- datas 模擬數(shù)據(jù),臨時(shí)存放
|-- lib 外部引用的插件存放及修改文件
|-- mock 模擬接口,臨時(shí)存放
|-- router 路由,統(tǒng)一管理
|-- store vuex, 統(tǒng)一管理
|-- views 視圖目錄
| |-- staffWorkbench 視圖模塊名
| |-- |-- staffWorkbench.vue 模塊入口頁(yè)面
| |-- |-- indexComponents 模塊頁(yè)面級(jí)組件文件夾
| |-- |-- components 模塊通用組件文件夾
總結(jié)
到此這篇關(guān)于Vue前端書(shū)寫規(guī)范的文章就介紹到這了,更多相關(guān)Vue前端書(shū)寫規(guī)范內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
前端vue按1920*1080設(shè)計(jì)圖的頁(yè)面適配屏幕縮放并適配4K屏詳解
最近在做一個(gè)數(shù)據(jù)可視化的項(xiàng)目,整個(gè)項(xiàng)目全是大屏展示,期間也是遇到很多問(wèn)題,最令人頭疼的就是大屏的適配,下面這篇文章主要給大家介紹了前端vue按1920*1080設(shè)計(jì)圖的頁(yè)面適配屏幕縮放并適配4K屏的相關(guān)資料,需要的朋友可以參考下2022-11-11
Vue中scrollIntoView()方法詳解與實(shí)際運(yùn)用舉例
這篇文章主要給大家介紹了關(guān)于Vue中scrollIntoView()方法詳解與實(shí)際運(yùn)用舉例的相關(guān)資料,該scrollIntoView()方法將調(diào)用它的元素滾動(dòng)到瀏覽器窗口的可見(jiàn)區(qū)域,需要的朋友可以參考下2023-12-12
vue.js將unix時(shí)間戳轉(zhuǎn)換為自定義時(shí)間格式
這篇文章主要介紹了vue.js將unix時(shí)間戳轉(zhuǎn)換為自定義時(shí)間格式的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
vue webpack多頁(yè)面構(gòu)建的實(shí)例代碼
這篇文章主要介紹了vue webpack多頁(yè)面構(gòu)建的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-09-09
Vue實(shí)現(xiàn)點(diǎn)擊當(dāng)前行變色
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)點(diǎn)擊當(dāng)前行變色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
vue實(shí)現(xiàn)添加與刪除圖書(shū)功能
這篇文章主要介紹了vue實(shí)現(xiàn)添加與刪除圖書(shū)功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
vue中如何動(dòng)態(tài)拼接this后面的變量
這篇文章主要介紹了vue中如何動(dòng)態(tài)拼接this后面的變量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07

