React是否应该使用Memo挂钩来记忆具有相同依赖值的重复调用



我遇到了一个问题,一个功能组件中的(假的(长时间运行/昂贵的函数似乎没有像我想象的那样被记忆。

根据我对内存化的理解,调用具有相同参数值的内存化函数只会返回上一次调用的结果。

只有当组件上的值不在依赖项列表中时,useMemo(至少在我的应用程序中(才会发生这种情况。我知道不同的值需要再次运行昂贵的函数,但即使我用以前使用的值(值/基元类型,而不是引用类型/对象(调用函数,它也会再次运行昂贵函数。

要么我没有完全正确的东西,要么我对useMemo的理解不完全正确(这就是React.memo的用武之地吗?(。

这一点可以在这个基本的堆栈中看到。

谁能告诉我哪里出了问题吗。

你认为你可以说50%正确。

对于同一组参数,useMemo不会再次执行代码,但

它只记得参数的最后一个值

在您的示例中,当您单击+和-按钮时,您正在从以前的值更改value的值。在第二次点击时,如果您返回相同的值,这并不意味着memoize将在执行函数时返回值。

试着添加一个按钮,点击它设置相同的当前值setValue(value),你会看到并没有重新计算。

相关内容

  • 没有找到相关文章

最新更新