【问题标题】:ReactJS: Do we still need pure functional components after introduction of PureComponent?ReactJS:引入 PureComponent 之后,我们还需要纯函数式组件吗?
【发布时间】:2018-06-15 17:18:48
【问题描述】:

我有一些文章说,在 React 的最新版本中,扩展 React 的 PureComponent 类的组件比纯函数式组件具有更好的性能。因此,如果这是正确的,那么是否有任何用例表明纯功能组件是不错的选择?同时 React 团队宣布他们将优化功能组件。那么谁是无状态功能组件或继承自 PureComponent 的组件的赢家呢?

【问题讨论】:

  • 纯功能组件没有状态,纯组件有状态。
  • 是的,纯功能组件也没有优化,当父组件重新渲染时,它总是会重新渲染。这是我关心的。
  • 是的,但是请记住,PFC 可能更适合重复元素,因为它们没有生命周期或任何逻辑(您还强迫人们像这样使用它们并说“嘿,那应该只做一件事”)。使用浅层比较时,请选择简单的 PC。在大多数情况下,您将无法分辨性能差异。但在极少数情况下,您确实需要 PC 的性能。

标签: reactjs


【解决方案1】:

取决于您使用它们的目的。

无状态函数总是脏的,因此总是重新渲染。 PureComponents 进行浅比较,因此可能不需要重新渲染。然而他们总是做一个完整的浅比较,这也可能不是你想要的。

归结为shouldComponentUpdate 以及PureComponent 中的预写是否适用于相关组件。

(请注意,我不知道 React 中功能组件的当前状态是什么……嗯,其中一些可能已经融入其中。)

【讨论】:

  • 你认为在父组件中决定是否重新渲染子组件是个好主意吗?
  • @IsmayilNiftaliyev 取决于。不是一般的,不;我认为这是混合问题。
猜你喜欢
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多