问题:在 React 的更新过程中,类组件是否始终复用初次挂载时创建的实例?更新时是否不会重新 new 一个?
- 在 React 中,每个类组件 在挂载(mount)时会被实例化一次,之后在更新(update)过程中:不会重新创建新的类实例,而是复用原来的实例,并调用其生命周期方法(如
shouldComponentUpdate、render、componentDidUpdate等) - 如果类组件被卸载后重新挂载,React 会重新创建一个新的类实例,也就是会重新执行构造函数
constructor,整个生命周期从头开始。
类组件实例复用的意义
- 保持组件内部状态(state)不丢失
- 保证
this的引用在整个组件生命周期中一致 - 提升性能,避免不必要的实例重建