首页 > 解决方案 > 是什么让 React.memo 在阻止渲染方面不可靠?

问题描述

React.memo 的文档中,它说:

此方法仅作为性能优化存在。不要依赖它来“阻止”渲染,因为这可能会导致错误。

我真的不明白这个警告。为什么不能依靠?如果它不一定阻止渲染,它是如何优化的?

我希望他们在这里更深入,但既然他们没有,有人可以详细说明一下吗?事实上,我根本不愿意使用它,因为这个警告使它的行为看起来很不清楚。

标签: reactjs

解决方案


也许,我们应该考虑一下官方文档中关于类似useMemo功能的引用:

您可能依赖 useMemo 作为性能优化,而不是语义保证。

将来,React 可能会选择“忘记”一些先前记忆的值,并在下一次渲染时重新计算它们,例如为屏幕外组件释放内存。编写您的代码,使其在没有 useMemo 的情况下仍然可以工作——然后添加它以优化性能。

我相信这同样适用于React.memouseCallback钩子,所以你不能 100% 依赖 React 不会“忘记”一些记忆的道具来释放一些内存。


推荐阅读