我在应用程序中使用了很多React功能组件。现在是考虑使用React的新React.memo()
API替换功能组件的合适时机吗?会真正提高性能吗?如果我每次使用React.memo()
代替功能组件,React每次都要检查我的新道具和以前的道具是否相同,然后需要更新我的组件。这会成为React的负担并降低我的表现吗?
有什么建议吗?
答案 0 :(得分:5)
您无需替换功能组件,因为备忘是您现有组件周围的高级组件。这将提高性能,因为如果功能部件的道具没有改变,您将不再需要任何不必要的功能部件重新渲染。来自React文档(https://reactjs.org/docs/react-api.html#reactmemo):
如果函数组件在相同条件下呈现相同结果 道具,您可以将其包装在对React.memo的调用中以提高性能 在某些情况下,通过记忆结果。这意味着React将跳过 渲染组件,然后重用最后渲染的结果。
您不必担心会“替换”您的组件,只需像这样包装导出功能
export default React.memo(YourComponent);