【问题标题】:useMemo vs. useCallback in react?useMemo 与 useCallback 的反应?
【发布时间】:2021-06-27 00:52:47
【问题描述】:

我正在尝试了解 useMemo 和 useCallback 之间的区别,并且文档中的此语句“useCallback(fn, deps) 等效于 useMemo(() => fn, deps)。”

所以在useMemo中,我必须传递一个返回函数的函数?在 useCallback 中,我只是返回一个函数。我得到了 useCallback,但我不确定 useMemo 和这个返回函数的函数(或者我这一切都错了)。阅读 SO 帖子还没有帮助。

如果useMemo调用的是返回函数的函数,react中第二个函数是什么时候调用的?

【问题讨论】:

标签: reactjs


【解决方案1】:

使用备忘录

返回一个记忆值。 意味着它可以为您提供参考价值。

使用回调

返回一个记忆的回调。 意味着它为您提供了函数的引用公平性。

【讨论】:

    【解决方案2】:

    如果你想记住一个函数,你将使用useCallback,语法:useCallback(fn, deps)。 但是如果你想记住函数的返回value那么你应该使用useMemo,语法:useMemo(() => fn(), deps)

    现在如果我比较以下语句中的两种语法

    useCallback(fn, deps) 等价于useMemo(() => fn, deps)

    对于useMemo,你没有调用fn,所以你得到的是函数本身而不是它的返回值。在这种情况下,useCallback(fn, deps) 和 useMemo(() => fn, deps) 都会为您提供记忆的 fn。

    【讨论】:

      猜你喜欢
      • 2022-12-15
      • 2023-03-25
      • 2022-12-23
      • 2019-09-20
      • 2021-09-29
      • 1970-01-01
      • 2019-11-18
      • 2019-11-16
      • 2020-06-01
      相关资源
      最近更新 更多