React面试题: 我是否可以在项目中不断使用React.Component来优化项目

发布时间 2023-11-02 17:12:42作者: 两仪院水月

React.PureComponent 是 React 的一个组件,主要用于性能优化,可以避免不必要的渲染。它的主要特点是:

  • 如果组件的 props 和 state 没有发生变化,则不会重新渲染(此处原理类似React.memo)
  • 可以自动检查深层对象和数组,判断其是否需要重新渲染(是深层比较)

但是,React.PureComponent 的缺点也很明显:

  • 不支持嵌套的 React.PureComponent 和 PureComponent (纯组件)不兼容,只能应用于顶层组件,这是他不能滥用的原因
  • 不支持副作用,比如数据获取, 所以他功能有限,特殊前端开发场景中需要我们支持副作用的情况,他是不能用的
  • 对象引用发生变化时,需要重新渲染,因为是深比较 deepCopy 所以一旦对象引用变化它就变化,一旦业务变化,一发而牵其身的效果(很美妙)。

综上所述,React.PureComponent 可以提高 React 应用的性能,但是也存在一些限制,需要谨慎使用

Pitfall: 目前React 18 官方已经不推荐使用,并且有了更好的代替方案,但是老项目中的使用 尤其是业务逻辑复杂的类组件中式需要了解的。