![](/img/trans.png)
[英]React component unnecessarily re-renders when I enter input in forms
[英]Connected React component unnecessarily re-renders when parent re-renders
我有一個通過實現 mapStateToProps 連接到 redux 存儲的 React 組件。 React-redux connect 實現了一個淺相等的 shouldComponentUpdate ,如果道具沒有改變(基於引用),它應該防止重新渲染。 但是,除非我明確地使我的組件成為純組件(使用 PureComponent),否則我的組件會在其父組件重新呈現時重新呈現。 這不應該是必需的,因為 connect 應該像 PureComponent 一樣實現了 shouldComponentUpdate 。 有什么理由說明為什么會發生這種情況? 具體來說,connect 的實現與 PureComponent 有何不同? 連接不會使其包裝的組件純凈嗎?
connect 應該像 PureComponent 一樣實現 shouldComponentUpdate
connect
function 不這樣做。
PureComponent
為您提供了shouldComponentUpdate
function,它是一個占位符,您可以在其中放置性能調整代碼。
coonect
采用了不同的方法,而是提供了 4 個函數/占位符。 您可以使用全部四個或部分或不使用來微調性能。 這些函數被稱為:
areStatesEqual
areStatePropsEqual
areOwnPropsEqual
areMergedPropsEqual
連接不會使其包裝的組件純凈嗎?
通過為您提供使用上述功能的選項,它由您決定。 您可以模仿shouldComponentUpdate
所做的淺層相等檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.