近期翻了翻本身在羣裏提交的review代碼,發現一些小問題,還有一些問題犯了不止一次,仍是老老實實記錄一波,以避免記性很差又忘記就怪很差意思的。
我在團隊中主要負責前臺項目,框架是vue,如下是咱們工做中團隊裏定的一些代碼規範。css
handle[description]
,好比:handleSubmit、handleButtonClick{{ someVar }}
,兩邊有空格@
開頭,css 文件除外<el-button size="small" icon="plus" class="ACompnent-button" > 編輯 <el-button>
建議每種屬性,都按照 a-z 進行排列,不強制
v-if
v-for
v-model
:label="labelWidth"
@click="handleButtonClick"
size="small"
<el-button size="small" icon="plus" class="ACompnent-button" />
<el-button size="small" icon="plus" class="ACompnent-button" > 刪除 </el-button> <el-button size="small" icon="plus"> 刪除 </el-button> <el-button size="small" icon="plus">刪除</el-button>
replace (\.\d{2})\d+
with $1
html
// 例如 background: rgba(0, 0, 0, .8);
<template v-slot:left> <go-back /> </template>
5.常犯的錯誤: ==class單個名稱,不須要引號==vue
<div :class="{ Order: true, // Order不須要引號 'Order-mask-open': serviceMaskShown, 'Order-fringe': iOSWithFringe, }" >
6.若是代碼邏輯裏面有常量記得提早抽離出來,單個文件裏面用到放在該文件下便可,多個地方用到放在外部統一import引入vuex
7.代碼記得考慮一下如何提交健壯性api
//例如:以下的改爲>= this.data.noticeDatas.length === this.maxLength
8.不要用all 指明屬性框架
// all 改爲transform/scale/opacity等具體的屬性 transition: all .3s ease;
9.代碼優化之判斷對象裏的屬性返回Boolean值svg
return this.paymentInfo && this.paymentInfo.settlementSheetUrl; // 能夠優化成 return Boolean(this.paymentInfo?.settlementSheetUrl); 或者改爲 return !this.paymentInfo?.settlementSheetUrl
10.代碼寫法之子組件傳給父組件,派發事件用'-',不要駝峯函數
// 子組件 handleChange(v) { this.$emit('address-changed', v); },
11.函數參數較多時 or 或者還有未知參數時傳入對象形式比較好優化
// 例如當前的業務函數,傳入四個參數,host多是未知的 export const isSelfProposal = (sourceId, sourceId, shopAddress, host) => { if (!sourceId || !shopAddress) return false; const shopIds = getEnvByHost(host) === 'release' ? releaseSelfProposalShopIds : testSelfProposalShopIds; if (selfProposalSoureIds.includes(sourceId) && shopIds.includes(shopId)) { return true; } return false; }; // 能夠改爲 export const isSelfProposal = ({ sourceId, sourceId, shopAddress, host, }) => {
12.子組件能夠經過vuex拿到的數據,不用從父組件取vuex中的數據再經過props傳入this