1
如果某個組件由於prop更改而需要每秒渲染幾次,該組件是否應該擴展React.PureComponent?React.PureComponent應該用於頻繁更新的組件嗎?
該組件沒有子組件,但它本身是深嵌的......所以道具正在穿過其他幾個組件。
一般來說,決定是否應使用React.PureComponent時,需要考慮哪些關鍵事項。在哪種情況下使用不好?
如果某個組件由於prop更改而需要每秒渲染幾次,該組件是否應該擴展React.PureComponent?React.PureComponent應該用於頻繁更新的組件嗎?
該組件沒有子組件,但它本身是深嵌的......所以道具正在穿過其他幾個組件。
一般來說,決定是否應使用React.PureComponent時,需要考慮哪些關鍵事項。在哪種情況下使用不好?
是的,這聽起來像是PureComponent的一個很好的例子,因爲您的組件不必要地被相同的道具經常重新渲染。
從React.Component擴展的子組件每次調用render
時都會調用render
。如果相反,子組件是從PureComponent擴展的,那麼當母公司通過不支持以前通過的道具的道具時,它將只會調用render
。
它通常是安全的,只要使用PureComponent作爲
context
更新shallowEqual
不會檢測到這些變化)
謝謝,但我的意思是道具有不同的值每秒幾次....如果渲染功能非常簡單,是否值得PureComponent做到這一點檢查這麼多每秒一次。此外,頁面上有數百個這些組件都隨着該頻率而變化。 – c0deNinja
'shallowEqual'具有非常小的性能成本,尤其是與'render'相比,它必須創建新元素並觸發陰影DOM比較。如果你所有的組件實例在100%的時間內都獲得了不同的道具,那麼確保PureComponent有一個小的性能打擊。但除此之外,這可能是淨收益。 –