- React 中的 Component、PureComponent、無狀態組件之間的比較
組件類型 | 說明 |
---|---|
React.createClass | 不使用ES6語法,只能使用 React.createClass 來創建組件;React對屬性中的所有函數都進行了this綁定 |
Component | 使用ES6語法創建組件;React並沒有對內部的函數,進行this綁定 |
PureComponent | shouldComponentUpdate通過判斷props和state是否發生變化來決定需不需要重新渲染組件,當然有時候這種簡單的判斷,顯得有些多余和樣板化,於是React就提供了PureComponent來自動幫我們做這件事,這樣就不需要手動來寫shouldComponentUpdate了。注意:PureComponent 自動為我們添加的shouldComponentUpate函數,只是對props和state進行淺比較;最簡單避免上述情況的方式,就是避免使用可變對象作為props和state,取而代之的是每次返回一個全新的對象;也可以考慮使用Immutable.js來創建不可變對象,通過它來簡化對象比較,提高性能。 |
無狀態組件 | 無state,只有props。 |