当我查看 useCallback 和 useMemo 时,我看到了同样的事情。您传入一个函数和一个依赖项数组。仅当依赖项更改时该函数才会重新运行。
这行添加在最后,我无法理解它:useCallback(fn, deps) 相当于 useMemo(() => fn, deps)
我希望还有更多解释,它可能会帮助我理解这两个函数之间的区别。
从我在网上看到的代码示例来看,useCallback 似乎自然地用于回调,而 useMemo 则用于非回调相关的代码。这些函数只是名称不同吗?一定有什么事情发生在幕后,只是没有明确说明? useCallback 是否会记住函数引用,而 useMemo 是否会记住函数的返回结果?
最佳答案
下面的两种用法在功能上是等效的:
const fn = useCallback((n) => add(n, n), [add]);
const fn = useMemo(() => (n) => add(n, n), [add]);
useCallback
是 useMemo
的一种特殊情况,如果创建回调时不涉及预计算,则可以使用它。
关于javascript - React 文档以及 useMemo 和 useCallback 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56940578/