簡體   English   中英

當父級重新渲染時,連接的 React 組件不必要地重新渲染

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM