记忆化的未来
记忆化的未来
好吧,现在你已经了解了我们工具箱中的各种优化工具,你可能会想:往后我们何时应该使用这些工具?我们如何知道一个组件是否应该是纯的,或者一个计算是否应该被记忆化?
好吧,现在问这些问题是个有趣的时刻。😅
在过去的几年里,React 团队一直在开发一个代号为“React Forget”的编译器。这个编译器将自动应用我们所学到的所有记忆化策略。理论上,这意味着我们可以将所有这些问题委托给编译器,而不必自己担心。
这个编译器尚未发布,但截至 2023 年 3 月,他们已经开始在 facebook.com 的某些部分进行生产测试。
现在,这个编译器可能永远不会发布。也许他们会发现这个想法的某个关键缺陷。但考虑到他们已经在生产中使用它,我对它能成功运作相当有信心。
所以,我的建议是:暂时将备忘录放在一边。除非你目前正在开发一个有明显性能问题的大型 React 应用,否则你并不需要对任何东西进行备忘录,等你真的需要的时候,可能已经没有必要了,因为编译器会为我们处理这些。
那么我们为什么要讨论这些内容呢?!好吧,即使有了 React Forget,理解 React 的渲染周期是仍然重要的,包括记忆化所扮演的角色。
无论未来是我们自己编写 React.useMemo() ,还是在我们的应用程序编译时自动应用,浏览器中的行为都是一样的。我们需要理解它是如何工作的,以便能够理解和调试我们的应用程序!
(此外,备忘录在 React 工作面试中也经常出现!能够回答关于 React.useMemo() 的作用的问题可能会帮助你找到工作。)
如果您想了解更多关于 React Forget 的信息,Meta 开发者 Xuan Huang 在他的会议演讲“无 memo 的 React”中深入讲解了这一内容。