React 钩子函数
4
官网:https://react.docschina.org/reference/react/useCallback
useCallback (缓存函数引用)
语法:
const fn = useCallback(() => { ... }, [deps])
deps:
将回调里“用到的外部变量”放入依赖数组即可。规则:你在回调中读取了谁,就把谁写进deps。
想稳定到只创建一次(挂载时定住):deps传 [], 但回调里不能依赖会变化的值,否则会拿到旧值。
何时用:
1、依赖数组里面用到了该函数(例如子组件以它为依赖项)
2、函数组件详细传递函数。子组件React.memo/useEffect/useMemo 依赖它。
3、避免列表项等频繁渲染时重复创建函数导致性能抖动。
何时不用:
函数只在当前组件内部使用,且不参与依赖判断。
依赖写法:
捕获的值都应写入
deps:useCallback(() => doSomething(id, q), [id, q])若只想在挂载时稳定:
useCallback(fn, [])