14 hours ago
- useEffect 的心智模型是基于与 props 和 state 的同步,而非生命周期事件。
- 由于 JavaScript 闭包,每次渲染都会捕获其自身的 props、state 和事件处理函数。
- 必须诚实指定依赖项,以避免无限循环或使用过时值等错误。
- 诸如函数式更新(setCount(c => c+1))、useReducer 和 useCallback 等技术有助于最小化不必要的重新执行。
- 如果函数仅在 effect 内部使用,则应将其移至 effect 内部,或使用 useCallback 包裹以参与数据流。
- 使用 useEffect 进行数据获取时,应处理竞态条件,例如通过清理函数或布尔标志。
- 自定义 Hook 可以封装常见模式(如 useFetch),从而减少直接使用 useEffect 的情况。