React.memo()与React功能组件

时间:2018-10-29 19:47:32

标签: reactjs

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

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

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

  

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

您不必担心会“替换”您的组件,只需像这样包装导出功能

export default React.memo(YourComponent);