https://reactjs.org/docs/hooks-reference.html#usecallback
当我查看useCallback和useMemo时,我看到的是同一件事。您传入一个函数和一个依赖项数组。仅当依赖项发生更改时,该功能才会重新运行。
此行添加在末尾,我无法理解:useCallback(fn, deps) is equivalent to useMemo(() => fn, deps)
我希望有进一步的解释,它可能有助于我理解这两个功能之间的区别。
从我在网上看到的代码示例中,似乎useCallback自然用于回调,而useMemo用于非回调相关代码。这些功能只是名称不同吗?一定是某些事情没有被明确阐明? useCallback会记住函数引用,而useMemo会记住函数的返回结果吗?
答案 0 :(得分:1)
以下两种用法在功能上是等效的:
const fn = useCallback((n) => add(n, n), [add]);
const fn = useMemo(() => (n) => add(n, n), [add]);
useCallback
是useMemo
的特例,如果创建回叫时不进行预计算,则可以使用。