ReactJS:每次呼叫「setState」時「渲染」都會觸發嗎?
React 的設計目的是僅在以下情況下有效地重新渲染元件:必要的。然而,這種行為可能並不總是顯而易見,從而導致有關「setState」和渲染之間關係的問題。
預設渲染行為
預設情況下,呼叫「setState」 " 觸發元件及其所有子元件的完全重新渲染。這可確保任何狀態變更都能準確反映在UI 中。的結果。 setState」被呼叫時,React 不會立即更新DOM。相反,會產生代表 UI 所需狀態的虛擬 DOM。只有當新舊虛擬 DOM 之間發生變更時,才會修改實際 DOM。
範例考慮問題中提供的程式碼片段:
儘管初始點擊後狀態沒有改變,但父元件和子元件都會重新渲染。這是因為「shouldComponentUpdate」總是回傳 true,強制重新渲染。最佳化重新渲染
為了防止不必要的重新渲染,可以重寫「shouldComponentUpdate」 " 並將新的props 和state 與先前的值進行比較。如果沒有影響UI 的重大更改,您可以返回false以阻止渲染。以上是ReactJS:「setState」是否總是觸發完全重新渲染?的詳細內容。更多資訊請關注PHP中文網其他相關文章!