React:手动记忆化是否必要?

19

阅读 React - 基本理论概念 和即将发布的 React Fiber 架构,似乎记忆化在 React 的数据处理逻辑中扮演着一个重要的核心角色,并与不可变数据存储一同使用。
然而,显然的是,React 是否以及在何种程度上内部处理记忆化,开发人员是否应该手动进行记忆化并不明显。

简而言之,React 何时会在内部记忆化函数调用,开发人员又何时需要手动进行记忆化?React 是否会自动地记忆化任何非内部函数调用呢?


1
我不知道这个问题的答案,但我在使用immutable.js对象时发现我的手动记忆化在React / Redux代码中得到了大大加速,因为您只需要比较对象的Immutable.js提供的哈希值而不是它们的值。 - Nick Sweeting
1个回答

13

React不会像你的示例展示的那样进行记忆化,React - Basic Theoretical Concepts。这取决于你自己。

在构建组件props时进行记忆化是最好的地方。也就是说,如果您有状态->props->组件,则可以对从状态到props的映射进行记忆化。

如果您需要通过记忆化获得性能提升,并且正在考虑使用redux,那么reselect文档是一个很好的起点。

如果您选择这条路,如果您还在shouldComponentUpdate函数中执行浅层属性检查,那么另一个大的性能提升也将出现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接