官方的 React 文档 声明“ React.PureComponent
的 shouldComponentUpdate()
仅对对象进行浅层比较”,如果状态为“深”,则建议不要这样做。
鉴于此,在创建 React 组件时,有什么理由应该更喜欢 React.PureComponent
?
问题:
- 使用
React.Component
我们可以考虑使用React.PureComponent
是否有任何性能影响? - 我猜
shouldComponentUpdate()
ofPureComponent
只执行浅比较。如果是这种情况,不能用上述方法进行更深层次的比较吗? - “此外,
React.PureComponent
的shouldComponentUpdate()
跳过整个组件子树的道具更新” - 这是否意味着道具更改被忽略?
如果有帮助,问题来自阅读此 媒体博客。
原文由 semuzaboi 发布,翻译遵循 CC BY-SA 4.0 许可协议
React.PureComponent
和React.Component
之间的主要区别是PureComponent
对状态变化进行了 浅层比较。这意味着在比较标量值时它比较它们的值,但是在比较对象时它只比较引用。它有助于提高应用程序的性能。当您满足以下任何条件时,您应该选择
React.PureComponent
。forceUpdate
如果您使用
React.PureComponent
您应该确保所有子组件也是纯的。是的,它会提高你的应用性能(因为比较浅)
你猜对了。如果您满足我上面提到的任何条件,您就可以使用它。
是的,如果在浅比较中找不到差异,道具更改将被忽略。