javascript - React 文档以及 useMemo 和 useCallback 之间的区别

标签 javascript reactjs react-hooks

useCallback

当我查看 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]);

useCallbackuseMemo 的一种特殊情况,如果创建回调时不涉及预计算,则可以使用它。

关于javascript - React 文档以及 useMemo 和 useCallback 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56940578/

相关文章:

javascript - 如何遍历属性名加[i]进行计数?

javascript - Bootstrap 3方 block 展示

reactjs - React : Parent or child? 如何决定将组件放置在哪里?

reactjs - useContext 给我的 react 路由器 dom 带来了问题

reactjs - useState 如何与 React 中的 eventListener 配合使用

javascript - 如何声明Vue数据类型

javascript - Thinkster 示例 : Passing data from model into directive

javascript - 在 map 上定位

reactjs - 如何在 React Owl Carousel 中使用 owl carousel 选项?

javascript - 如何使用 useEffect Hook 将 DOM 元素添加到我的状态,而不会在控制台中出现错误/警告?