在React 18 中使用StrictMode 的useEffect 掛鉤時,您可能會注意到該掛鉤在初始掛鉤時在初始掛鉤調用兩次。這可能會引起擔憂,特別是當您在應用程式中觀察到意外行為時。
根據 React 文檔,這是 React 18 中引入的預期行為,為未來做好準備涉及狀態保存和高效 UI 更新的改進。透過在掛載時重新掛載元件,React 旨在確保您的程式碼能夠適應多次掛載和卸載的效果。
需要注意的是,這種行為是特定的到啟用 StrictMode 的開發模式。在生產模式下,僅進行一次呼叫。
如果您遇到此行為問題,請考慮以下方法:
1 。處理清理:
確保你的 useEffect 具有清理功能,以便在組件卸載時執行必要的操作。這可以防止取消 HTTP 請求或記憶體洩漏等問題。
2.在生產中避免 StrictMode:
如果雙重呼叫導致嚴重問題,您可以在生產中停用 StrictMode,因為該行為僅限於開發模式。
3.快取 HTTP 要求:
為了防止開發中重複的 HTTP 請求,請利用快取和重複資料刪除請求的函式庫。
雖然此問題可能需要注意,它也是重新審視您的useEffect 用法並採用最佳方法的機會做法:
請記住,雙重useEffect 調用旨在發現潛在的錯誤您的程式碼,使您能夠編寫健壯的、可用於編寫生產的React 應用程式。
以上是為什麼我的 useEffect Hook 在 React 18 開發模式下運行兩次?的詳細內容。更多資訊請關注PHP中文網其他相關文章!