官方React文档声明“React.PureComponent的shouldComponentUpdate()只是粗略地比较对象”,如果状态为“deep”,则建议不要这样做
有鉴于此,在创建React组件时,有没有理由更喜欢React.PureComponent
问题:
- 在使用 Real.组件中是否会有性能上的影响?我们可以考虑去 > PURACE组件 >
- 我猜
PureComponent的shouldComponentUpdate()只执行肤浅的比较。如果是这样的话,难道不能用这种方法进行更深入的比较吗 - “此外,
React.PureComponent的shouldComponentUpdate()跳过整个组件子树的道具更新”-这是否意味着道具更改被忽略
这个问题来自于阅读这个媒体博客,如果它有帮助的话
React.PureComponent和React.Component之间的主要区别在于PureComponent对状态变化进行了浅层比较。这意味着在比较标量值时,它会比较它们的值,但在比较对象时,它只比较引用。它有助于提高应用程序的性能
当您可以满足以下任何条件时,应选择React.PureComponent
- 状态/道具应该是不可变的对象
- 状态/道具不应具有层次结构
- 数据更改时,应调用
forceUpdate
如果使用的是React.PureComponent,则应确保所有子组件也是纯组件
使用React.component是否会对性能产生影响
考虑反应,纯成分?
是的,它将提高你的应用程序性能(因为比较肤浅)
我猜Purecomponent的shouldComponentUpdate()只执行
肤浅的比较。如果是这种情况,上述方法不能使用吗
为了更深入的比较
你猜对了。如果你满足我上面提到的任何条件,你都可以使用它
此外,React.PureComponent的shouldComponentUpdate()跳过了prop
整个组件子树的更新”-这是否意味着
是否忽略更改
是的,如果在浅层比较中找不到差异,道具更改将被忽略