React Docs以及useMemo和useCallback

时间:2019-07-08 18:20:50

标签: javascript reactjs react-hooks

https://reactjs.org/docs/hooks-reference.html#usecallback

当我查看useCallback和useMemo时,我看到的是同一件事。您传入一个函数和一个依赖项数组。仅当依赖项发生更改时,该功能才会重新运行。

此行添加在末尾,我无法理解:useCallback(fn, deps) is equivalent to useMemo(() => fn, deps)我希望有进一步的解释,它可能有助于我理解这两个功能之间的区别。

从我在网上看到的代码示例中,似乎useCallback自然用于回调,而useMemo用于非回调相关代码。这些功能只是名称不同吗?一定是某些事情没有被明确阐明? useCallback会记住函数引用,而useMemo会记住函数的返回结果吗?

1 个答案:

答案 0 :(得分:1)

以下两种用法在功能上是等效的:

const fn = useCallback((n) => add(n, n), [add]);

const fn = useMemo(() => (n) => add(n, n), [add]);

useCallbackuseMemo的特例,如果创建回叫时不进行预计算,则可以使用。