【问题标题】:React.PureComponent - Why is this not implemented in React by default?React.PureComponent - 为什么默认情况下没有在 React 中实现?
【发布时间】:2021-11-16 16:52:50
【问题描述】:

我已经阅读了 React 的 Component 和 PureComponent 类之间的区别,并了解 PureComponent 对 props 和 state 进行了浅层比较,以便有效地管理渲染。这里有几个问题,

  1. 如果 PureComponent 通过避免不必要的重新渲染来优化渲染,为什么它不在 React 中默认出现(可能是通过在 Component 类本身中实现对 shouldComponentUpdate() 的处理,因为 React 就是为了有效地更新DOM)。

  2. 即使在 props 和 state 保持不变的情况下,何时有人想要重新渲染页面,即何时使用 Component 而不是 PureComponent?

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    因为做浅的 props 和 state diff 不是免费的,它需要(少量的)工作。由于 React 已经与 DOM 进行了比较,并且只更改了您在重新渲染版本(如果有的话)中所做的更改,因此它已经在进行一个 diff。做两个(区分道具和状态,然后用 DOM 区分)有时有用(如果它们不太可能发生变化),有时则没有(如果它们很可能已经改变)。所以你可以使用PureComponent(或实现shouldComponentUpdate),如果你认为它有用,而不是如果你不这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      相关资源
      最近更新 更多