useCallback
是 React 中的一个性能优化 Hook,用于缓存函数引用,避免在组件重新渲染时重复创建相同的函数,从而减少不必要的子组件渲染或副作用执行。以下是其核心要点:
1. 核心作用
- 函数记忆化:返回一个记忆化的回调函数,仅在依赖项变化时重新创建函数,否则复用之前的函数引用。
- 优化性能:避免因函数引用变化导致的子组件无效渲染(尤其配合
React.memo
)或useEffect
的重复触发。
2. 基本语法
const memoizedCallback = useCallback(() => {// 函数逻辑
}, [dependencies]); // 依赖项数组
- 参数:
- 回调函数:需要缓存的函数。
- 依赖项数组:函数内部引用的外部变量。若依赖项变化,函数会重新创建。
- 返回值:记忆化的函数引用。
3. 工作原理
- 初始化阶段:将函数和依赖项存储到 Fiber 节点的
memoizedState