Reactjs React/Memo:使用React.Memo包装所有功能组件

Reactjs React/Memo:使用React.Memo包装所有功能组件,reactjs,Reactjs,多亏了React钩子,我们开始将所有组件开发为功能组件。但是我们错过了PureComponent,它避免了不必要的重新加载。我们曾经创建每个扩展PureComponent的组件 我的问题是:我们是否应该盲目地用React.memo包装所有功能组件?它会以任何方式减慢或影响应用程序吗?是否存在不应使用React.memo包装功能组件的情况?是的,React.memo、PureComponent和shouldComponentUpdate for Class都会对性能产生负面影响,因为它们的计算成本

多亏了React钩子,我们开始将所有组件开发为功能组件。但是我们错过了PureComponent,它避免了不必要的重新加载。我们曾经创建每个扩展PureComponent的组件


我的问题是:我们是否应该盲目地用React.memo包装所有功能组件?它会以任何方式减慢或影响应用程序吗?是否存在不应使用React.memo包装功能组件的情况?

是的,React.memo、PureComponent和shouldComponentUpdate for Class都会对性能产生负面影响,因为它们的计算成本很小,因此,如果您知道您的组件不是纯组件,那么您应该在使用它们的方式和时间上小心。

以下链接可以回答我的问题


请标记答案我想知道,对于纯组件,是否应该始终使用
React.memo作为经验法则包装这些组件,或者性能优势不值得选择不使用React memo的一些原因可能是:-您确定组件的重新招标率较低-您的组件很小(非常少的UI元素)-在重新渲染期间,您的组件通常会提供不同的道具(在这种情况下,道具比较只是额外的成本)@vsyncI的意思是纯粹的,因为它根本没有道具,总是返回完全相同的输出,并且重新渲染速率未知,因为该组件可能会在任何地方使用(例如,一个特定的单元素工具提示)我认为这样的组件非常罕见,大多数组件至少都有一些道具。无论如何,我还想说,这样的组件应该包装在react.memo中,因为它们没有理由被重新加载,如果它们的父母重新加载,它们也会被重新加载。@vsync