我不明白为什么useCallback
每次更新一个部门时总是返回一个新的参考。React.memo()
它导致许多本可以避免的重新渲染。
如果有的话,这个实现的问题是useCallback
什么?
export function useCallback(callback) {
const callbackRef = useRef();
callbackRef.current = callback;
return useState(() =>
(...args) => callbackRef.current(...args)
)[0];
}
使用它而不是内置实现肯定会对性能产生重大的积极影响。
自己的结论:
只要您了解其含义,就没有理由不使用使用 ref 的实现而不是内置的setTimeout
,即,正如@Bergy 所指出的,您不能存储回调以供以后使用(例如,在之后)并期望回调具有与同步调用它相同的效果。
然而,在我看来,这是首选行为,因此没有缺点。