React.memo()与React功能组件

Roo*_*til 1 reactjs

我在应用程序中使用了很多React功能组件。现在是时候考虑用React的新React.memo()API 替换我的功能组件了吗?会真正提高性能吗?如果我React.memo()每次使用React而不是功能组件,React都要检查我的新道具和以前的道具是否相同,然后需要更新我的组件。这会成为React的负担并降低我的表现吗?

有什么建议么 ?

Kei*_*ter 6

您无需替换功能组件,因为备忘是您现有组件周围的高级组件。这将提高性能,因为如果功能部件的道具没有改变,您将不再需要任何不必要的功能部件重新渲染。从React文档(https://reactjs.org/docs/react-api.html#reactmemo):

如果您的功能组件使用相同的道具呈现相同的结果,则可以将其包装在对React.memo的调用中,以在某些情况下通过记忆结果来提高性能。这意味着React将跳过渲染组件,并重用最后渲染的结果。

您不必担心“替换”您的组件,只需包装导出函数即可,如下所示

export default React.memo(YourComponent);
Run Code Online (Sandbox Code Playgroud)