深入理解 useEffect
前情提要
剛開始學 React 的時候,我對 useEffect 的理解就是「用來處理副作用的 Hook」,然後就開始到處亂用 XD。後來在實際專案中踩了不少坑,像是無限迴圈、Race Condition、不必要的 re-render 等等,才發現自己對 useEffect 的理解太淺了。後來讀了 Dan Abramov 的 A Complete Guide to useEffect 這篇經典文章,才終於建立起正確的心智模型。這篇文章整理了我對 useEffect 的理解,希望能幫助路過的讀者少走一些彎路。
useEffect 的核心概念
useEffect 是 React 中用於處理 副作用 (Side Effects) 的 Hook。副作用指的是任何與外部系統互動的操作,例如:網路請求、DOM 操作、訂閱事件、計時器等。
基本語法
useEffect(setup, dependencies?)
setup: Effect 函數,可選擇性回傳一個 cleanup 函數dependencies: 依賴陣列,決定 Effect 何時重新執行