useCallback(fn, deps) ≠≠≠ useMemo(() => fn, deps)

864 阅读1分钟

先看一个例子

  • useCallback(fn, deps) 相当于 useMemo(() => fn, deps) 貌似对的

再看下面的神奇之处

  • useCallback(fn, deps) 相当于 useMemo(() => fn, deps) 你还说是对的🤔

首先给我们节流加输出日志

1、useCallback(fn, deps) 鼠标移动n次就输出n次

2、useMemo(() => fn, deps) 鼠标移动n次只输出输出2次

通过上面的例子,我们可以看出 useMemo(() => fn, deps) 和 useCallback(fn, deps) 在fn是高阶函数时是不相等的🤔!!!