昨天我接到要優化同事寫的一個頁面的響應速度的需求,因而我開始看他的代碼...數組
看別人的代碼真是件痛苦的事情!他的代碼風格和個人大相徑庭,幸虧我 vscode 開了eslint,幫我檢測出不少不規範的代碼。bash
因此我想寫篇文章記錄一下 eslint 幫我摳出的這些不規範。antd
不要在裝飾器和類之間使用 export 關鍵字。 函數
// 修改方案
@Form.create() // 這個就是那個裝飾器
class Trade extends PureComponent {
...
}
export default Trade
複製代碼
constructor
函數寫在變量 columns
後面,函數位置應該位於 componentDidMount
性能
變量(這裏的 columns
) → constructor
→ 生命週期函數(componentWillMount
/componentDidMount
/... 最好按照生命週期順序來寫)→ 業務函數優化
成員之間留有空行,讓代碼更美觀 ui
// 修改方案
componentDidMount(){
...
}
handleRefund = record=>{
...
}
複製代碼
利用結構賦值來簡化代碼 this
// 修改方案
const {dispatch} = this.props
dispatch({
...
})
複製代碼
數組的 push
操做不算改變變量,使用 const
來定義變量spa
因爲使用了 antd 的 message 組件,因此如圖所示,提示上層做用域已經存在 'message'
3d
// 修改方案
const msg = [];
res.body.map(item => {
return msg.push(
...
);
});
複製代碼
字符串的拼接使用``
,使代碼更加直觀
// 修改方案
values.remark ? `:${values.remark}` : ''
const msg = [];
res.body.map(item => {
return msg.push(
`單號:${item.value}付款失敗!失敗緣由:${item.msg}。`,
);
});
複製代碼
不用 index
的值做爲 key
的值,應該使用 id
或其餘惟一標識字段
key
來快速判斷是否須要更新 DOM
結構,因此使用 key
屬性能夠提升性能,而且 key
的值必須是惟一不變的。index
做爲數組元素的序列號會跟根據數組的長度改變而改變的,因此不建議使用 index
的值做爲 key
值。 單行註釋 //
後面應該跟上一個空格,讓代碼更美觀
不在 componentWillUpdate
中使用 setState
props
或 state
時,會在渲染以前調用此方法。若是在此方法中使用 setState
則會觸發另外一個 componentWillUpdate
,引發無限循環。