返回
从前端角度剖析React生命周期演变
前端
2023-10-03 15:55:57
React生命周期演变史
早期生命周期(React v16.0前)
在React v16.0之前,React的生命周期相对简单,主要包括以下几个阶段:
- 初始化阶段: 在这个阶段,React会创建一个组件实例,并调用组件的constructor()方法。
- 挂载阶段: 在这个阶段,React会将组件插入到DOM中,并调用组件的componentDidMount()方法。
- 更新阶段: 当组件的状态或属性发生变化时,React会重新渲染组件,并调用组件的componentDidUpdate()方法。
- 卸载阶段: 当组件从DOM中移除时,React会调用组件的componentWillUnmount()方法。
新生命周期(React v16.0后)
在React v16.0中,React引入了Fiber架构,这使得React能够实现异步渲染。异步渲染意味着React可以在渲染组件时暂停并恢复渲染,这使得React能够更有效地利用系统资源。
为了支持异步渲染,React对生命周期进行了重大的调整。新的生命周期包括以下几个阶段:
- 初始化阶段: 在这个阶段,React会创建一个组件实例,并调用组件的constructor()方法。
- 挂载阶段: 在这个阶段,React会将组件插入到DOM中,并调用组件的componentDidMount()方法。
- 更新阶段: 当组件的状态或属性发生变化时,React会重新渲染组件,并调用组件的componentDidUpdate()方法。
- 卸载阶段: 当组件从DOM中移除时,React会调用组件的componentWillUnmount()方法。
- 错误处理阶段: 当组件在渲染过程中发生错误时,React会调用组件的componentDidCatch()方法。
新旧生命周期对比
新旧生命周期之间的主要区别在于:
- 异步渲染: 新生命周期支持异步渲染,这使得React能够更有效地利用系统资源。
- 错误处理: 新生命周期增加了componentDidCatch()方法,这使得React能够更好地处理组件在渲染过程中发生的错误。
总结
React生命周期是一个重要的概念,它定义了组件在不同阶段的行为。随着React的发展,生命周期的变化也越来越复杂。本文从前端的视角,梳理了React生命周期的演变,帮助开发者更好地理解和使用React。
附录
React生命周期方法列表
生命周期方法 | |
---|---|
constructor() | 在组件实例化时调用 |
componentDidMount() | 在组件挂载到DOM后调用 |
componentDidUpdate() | 在组件状态或属性发生变化后调用 |
componentWillUnmount() | 在组件从DOM中卸载时调用 |
componentDidCatch() | 在组件在渲染过程中发生错误时调用 |