你可以理解为保证函数引用,但是函数内部状态依旧更新,类似这段伪代码 function useEffectEvent(handler) { const handlerRef = useRef(null); useLayoutEffect(() => { handlerRef.current = handler; }); return useCallback((...args) => { const fn = handlerRef.current; return fn(...args); }, []); }