react 类组件实例化思考

40 阅读1分钟

问题:在 React 的更新过程中,类组件是否始终复用初次挂载时创建的实例?更新时是否不会重新 new 一个?

  1. 在 React 中,每个类组件 在挂载(mount)时会被实例化一次,之后在更新(update)过程中:不会重新创建新的类实例,而是复用原来的实例,并调用其生命周期方法(如 shouldComponentUpdaterendercomponentDidUpdate 等)
  2. 如果类组件被卸载后重新挂载,React 会重新创建一个新的类实例,也就是会重新执行构造函数 constructor,整个生命周期从头开始。

类组件实例复用的意义

  • 保持组件内部状态(state)不丢失
  • 保证 this 的引用在整个组件生命周期中一致
  • 提升性能,避免不必要的实例重建