如何防止useEffect Hook 在初始渲染時運行
React 文件指出,在渲染過程中不會調用componentDidUpdate() 生命週期方法初始渲染。但是,當使用 useEffect 鉤子模擬 componentDidUpdate() 時,它似乎在每個渲染上運行,包括第一個渲染。
說明
useEffect 鉤子在之後運行每個渲染週期,包括第一個渲染週期。與 componentDidUpdate() 方法不同,它沒有內建檢查來跳過第一次運行。
解
有兩種方法可以解決此問題:
1。使用useRef
我們可以使用useRef鉤子來追蹤useEffect函數是否是第一次被呼叫。
2.使用 useLayoutEffect
useLayoutEffect 與 useEffect 類似,但它與 componentDidUpdate() 運行在同一階段,發生在 DOM 作業之後。
以上是為什麼 useEffect 在 React 中的初始渲染上運行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!