React.Component与React.PureComponent

官方React文档声明“React.PureComponentshouldComponentUpdate()只是粗略地比较对象”,如果状态为“deep”,则建议不要这样做

有鉴于此,在创建React组件时,有没有理由更喜欢React.PureComponent

问题

  • 在使用 Real.组件中是否会有性能上的影响?我们可以考虑去 > PURACE组件 >
  • 我猜PureComponentshouldComponentUpdate()只执行肤浅的比较。如果是这样的话,难道不能用这种方法进行更深入的比较吗
  • “此外,React.PureComponentshouldComponentUpdate()跳过整个组件子树的道具更新”-这是否意味着道具更改被忽略

这个问题来自于阅读这个媒体博客,如果它有帮助的话

React.PureComponentReact.Component之间的主要区别在于PureComponent对状态变化进行了浅层比较。这意味着在比较标量值时,它会比较它们的值,但在比较对象时,它只比较引用。它有助于提高应用程序的性能

当您可以满足以下任何条件时,应选择React.PureComponent

  • 状态/道具应该是不可变的对象
  • 状态/道具不应具有层次结构
  • 数据更改时,应调用forceUpdate

如果使用的是React.PureComponent,则应确保所有子组件也是纯组件

使用React.component是否会对性能产生影响
考虑反应,纯成分?

是的,它将提高你的应用程序性能(因为比较肤浅)

我猜Purecomponent的shouldComponentUpdate()只执行
肤浅的比较。如果是这种情况,上述方法不能使用吗
为了更深入的比较

你猜对了。如果你满足我上面提到的任何条件,你都可以使用它

此外,React.PureComponent的shouldComponentUpdate()跳过了prop
整个组件子树的更新”-这是否意味着
是否忽略更改

是的,如果在浅层比较中找不到差异,道具更改将被忽略

发表评论