1. 駝峰式命名法
-Pascal Case ?駝峰式命名法:?字??寫鲸郊。eg:StudentInfo赦肃、UserInfo溅蛉、ProductInfo -Camel Case?
?駝峰式命名法:?字??寫。eg:studentInfo他宛、userInfo船侧、productInfo
2. ?件命名規(guī)范
?件名不能含有空格 ?件名建議只使??寫字?,不使??寫字?堕汞。(但?如說像github的說明類?件勺爱, README晃琳,則應(yīng)該全部使??寫)
1. 駝峰式命名法
2. ?件命名規(guī)范
3. ?件名包含多個(gè)單詞時(shí)讯检,單詞之間建議使?半?的連詞線 ( - ) 分隔琐鲁。
3. vue的開發(fā)規(guī)范
3.1 vue的?命鉤?函數(shù)
3.2 vue?件基本結(jié)構(gòu)
3.4 v-for
在執(zhí)? v-for 遍歷的時(shí)候,總是應(yīng)該帶上 key 值使更新 DOM 時(shí)渲染效率更?
3.5 v-if / v-else-if / v-else
3.5 method ?法命名命名規(guī)范
駝峰式命名人灼,統(tǒng)?使?動(dòng)詞或者動(dòng)詞+名詞形式
請求數(shù)據(jù)?法围段,以 data 結(jié)尾
3.6 views/components 下的?件命名
只有?個(gè)?件的情況下不會(huì)出現(xiàn)?件夾,?是直接放在 views/components ?錄下?投放,如 index.vue
盡量是名詞,且使?駝峰命名法
開頭的單詞就是所屬模塊名字(workbenchIndex奈泪、workbenchList、workbenchEdit)
名字?少兩個(gè)單詞(good: workbenchIndex)(bad:workbench)?
3.7 元素特性的順序
原?屬性放前?灸芳,指令放后?
3.8 ?錄?件夾及??件規(guī)范
可以根據(jù)??的習(xí)慣來使?components和views?件夾
3.9 注釋規(guī)范
代碼注釋在?個(gè)項(xiàng)?的后期維護(hù)中顯的尤為重要涝桅,所以我們要為每?個(gè)被復(fù)?的組件編寫組件使?說明,
為組件中每?個(gè)?法編寫?法說明
3.9.1 務(wù)必添加注釋列表
公共組件使?說明
各組件中重要函數(shù)或者類說明
復(fù)雜的業(yè)務(wù)邏輯處理說明
特殊情況的代碼處理說明,對于代碼中特殊?途的變量烙样、存在臨界值冯遂、函數(shù)中使?的 hack、使?了某種算
法或思路等需要進(jìn)?注釋描述
多重 if 判斷語句
注釋塊必須以/**(?少兩個(gè)星號)開頭**/
單?注釋使?//
3.9.2 單?注釋
3.9.3 多?注釋
4. 語法
4.1 變量申明
4.1.1 盡量使? const
應(yīng)當(dāng)使??const?來定義所有引?變量谒获;避免使??var 蛤肌。 這能夠確保你的引?值不會(huì)被重新賦值,減少項(xiàng)?中的 bug批狱,并提?代碼的可讀性裸准。
4.1.2 不要使? var
如果必須要使??個(gè)可以被重新賦值的引?,必須??let?來代替?var 赔硫。
原因是炒俱,let 創(chuàng)建塊級作?域的變量,? var 創(chuàng)建的函數(shù)級作?域變量會(huì)造成變量提升爪膊。
4.1.3 最?作?域
變量應(yīng)當(dāng)在最接近它們被使?的地?被定義向胡,?不是定義在塊級作?域的開頭。這樣能確 保它們影響最?的作?域范圍惊完。
需要注意的是僵芹,let 和 const 都是塊級作?域的
4.2 對象
4.2.1 使?字?量創(chuàng)建新對象
創(chuàng)建對象時(shí),應(yīng)當(dāng)使?字?量創(chuàng)建對象小槐。
由于?者在性能上沒有區(qū)別拇派,?使?字?量能減少代碼?件的??,且讓團(tuán)隊(duì)?格統(tǒng)?凿跳。因 此字?量創(chuàng)建對象是?個(gè)更好的?法件豌。
4.2.2 動(dòng)態(tài)屬性名
對象的動(dòng)態(tài)屬性名應(yīng)當(dāng)使?計(jì)算屬性名的?式定義
這能夠讓對象的所有屬性在同?個(gè)地?被定義,減少維護(hù)?作量
4.2.3 使?對象?法簡寫
這是 ES6 提供的語法糖控嗜,這個(gè)語法可以更簡潔地定義復(fù)雜對象字?量茧彤。
4.2.4 僅在必要時(shí)給屬性名加上引號
不應(yīng)當(dāng)給常規(guī)的對象屬性名加引號。
在性能上疆栏,?多數(shù) JS 引擎對?引號的屬性名讀取有更?的性能曾掂。?且代碼編輯器會(huì)對此有 語法?亮惫谤。?
4.3 類
4.3.1 class 關(guān)鍵詞
應(yīng)該使? Class 來創(chuàng)建?個(gè)類,?不是使?原型?式珠洗。
4.3.2 extend 關(guān)鍵詞
應(yīng)該?使? extends 來繼承?個(gè)類溜歪,?不是使?原型鏈或者 apply ?法
使?語法糖,提?代碼可讀性
4.4 函數(shù)
4.4.1 函數(shù)聲明
不應(yīng)當(dāng)使?函數(shù)聲明?式來創(chuàng)建函數(shù)许蓖。直接聲明函數(shù)會(huì)使函數(shù)聲明提前蝴猪,導(dǎo)致它在函數(shù)定義之 前就可以被引?。這會(huì)影響可讀性和可維護(hù)性膊爪。
如果?個(gè)函數(shù)?法太?自阱,或者太復(fù)雜,使得它影響了?件其余部分代碼的理解米酬,應(yīng)當(dāng)將其獨(dú)? 出來作為?個(gè)模塊
4.4.2 不在?函數(shù)塊中定義函數(shù)
不允許在?函數(shù)塊作?域中(例如?if,?while?等)定義?個(gè)函數(shù)动壤。應(yīng)當(dāng)先把函數(shù)分配給?個(gè)變量。
4.4.3 箭頭函數(shù)
當(dāng)必須使??個(gè)函數(shù)表達(dá)式時(shí)淮逻,例如作為回調(diào)函數(shù)傳遞給?法琼懊,應(yīng)當(dāng)使?箭頭函數(shù)。 箭頭的兩側(cè)必須有?個(gè)空格爬早。
箭頭函數(shù)能避免 this 上下?的困擾哼丈,并且很簡潔。 如果有必須使?獨(dú)? this 上下?的情況筛严,應(yīng)當(dāng)??定義函數(shù)后再進(jìn)?傳遞?
4.5 模塊
4.5.1 import/export
應(yīng)當(dāng)使??import/export?來導(dǎo)?模塊醉旦。 禁?導(dǎo)出?個(gè)導(dǎo)?語句。
4.5.2 通配符
禁?使?通配符導(dǎo)?模塊桨啃。 因?yàn)檫@要求對應(yīng)模塊必須有?個(gè)默認(rèn)導(dǎo)出項(xiàng)车胡。
4.5.3 多次導(dǎo)?
禁?從?個(gè)?件中多次導(dǎo)?屬性。
4.5.3 默認(rèn)導(dǎo)出
當(dāng)只有?個(gè)導(dǎo)出項(xiàng)時(shí)照瘾,應(yīng)當(dāng)使?默認(rèn)導(dǎo)出匈棘。
4.6 ?較
4.6.1 ===/==
必須使??===?和?!==?來進(jìn)??較。如?必要析命,不應(yīng)當(dāng)使??==?和?!= 主卫。
4.6.2 三元表達(dá)式
如?必要,禁?嵌套三元表達(dá)式鹃愤。如?必要不應(yīng)當(dāng)折?簇搅。
實(shí)際在編寫代碼的時(shí)候?yàn)槭菇Y(jié)構(gòu)清晰是不建議使?這種三元表達(dá)式嵌套的,并且代碼的執(zhí)? 效率也會(huì)降低软吐,因此還是使?常規(guī)的分?結(jié)構(gòu)