React面试题: 我是否可以在项目中不断使用React.Component来优化项目
React.PureComponent 是 React 的一个组件,主要用于性能优化,可以避免不必要的渲染。它的主要特点是:
- 如果组件的 props 和 state 没有发生变化,则不会重新渲染(此处原理类似React.memo)。
- 可以自动检查对象和数组,判断其是否需要重新渲染(是浅比较)。
但是,React.PureComponent 的缺点也很明显:
- 不支持嵌套的 React.PureComponent 和 PureComponent (纯组件)不兼容,只能应用于顶层组件,这是他不能滥用的原因。
- 不支持副作用,比如数据获取, 所以他功能有限,特殊前端开发场景中需要我们支持副作用的情况,他是不能用的。
- 对象引用发生变化时,需要重新渲染,因为是浅层对比 prop 和 state 的方式来实现了该函数。 所以一旦对象引用变化它就变化,一旦业务变化,一发而牵其身的效果(很美妙)。
综上所述,React.PureComponent 可以提高 React 应用的性能,但是也存在一些限制,需要谨慎使用
Pitfall: 目前React 18 官方已经不推荐使用,并且有了更好的代替方案,但是老项目中的使用 尤其是业务逻辑复杂的类组件中式需要了解的。