React 是否重新渲染所有元件及其子元件,只要「setState()」為呼叫?
是的,React 在呼叫「setState()」後預設觸發重新渲染。
雖然React的目標是最佳化渲染,但它透過在狀態改變時始終重新執行「render」方法來防止由狀態突變引起的細微錯誤
每個元件都有一個名為「shouldComponentUpdate(nextProps, nextState)」的方法。此方法根據 props 和 state 的變化決定是否重新執行「render」。
預設情況下,「shouldComponentUpdate」傳回 true,確保重新渲染發生每次狀態或屬性變更時。
在提供的程式碼片段中,每當按一下文字時,主元件都會將其狀態設為相同的值(「me」)。即使狀態沒有改變,React 仍然會重新渲染 Main 和 TimeInChild 元件,因為「shouldComponentUpdate」預設會傳回 true。
您可以透過以下方式優化渲染編寫「shouldComponentUpdate」的自訂實現,比較新舊 props 和狀態以決定是否需要實際重新渲染。
以上是React 在每次呼叫 setState() 後都會重新渲染元件嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!