PureComponent 和 Component
react
區別
PureComponent 是淺比較, 如五種基礎類型(boolean, string, number, null, undifined)基礎類型:直接比較;
而引用類型(如數組arrTemp=[1, 2, 3, 4]): 更新後, arrTemp爲[1, 3, 4], 此時PureComponent 認爲arrTemp的引用地址沒有變化(可以通過JSON.parse(JSON.stringify(arrTemp)) 或者 解構 來避免), 不會觸發更新操作
總而言之, PureComponent是通過弱化前後props的比較來提升性能
使用PureComponent的條件
- props 和 state 必須是 immutable object
- props 和 state 最好不要有層級嵌套; 否則深層的數據改變不會更新組件(可以用 forceUpdate 強制更新組件)
- PureComponent 的子組件也應該是PureComponent
最佳食用方式
- Component適宜用在數據層級繁雜的地方;
- PureComponent適宜用在小組件中(如模態框, 錯誤信息展示 etc)