返回

React组件的生命周期及执行顺序:从入门到精通

前端

React组件的生命周期是指组件从创建到销毁所经历的各个阶段,包括:

  • 挂载(Mounting)
  • 更新(Updating)
  • 卸载(Unmounting)

挂载(Mounting)

挂载阶段是组件被创建和插入到DOM中的过程。在这个阶段,组件会经历以下几个生命周期方法:

  1. constructor() :构造函数在组件创建时被调用,主要用于初始化组件状态和绑定事件处理程序。
  2. getDerivedStateFromProps() :该方法在组件接收到新的props时被调用,可以根据新的props更新组件状态。
  3. render() :渲染方法用于生成组件的虚拟DOM表示。
  4. componentDidMount() :组件挂载到DOM之后被调用,常用于执行一些与DOM相关的操作,例如获取DOM元素的引用或执行AJAX请求。

更新(Updating)

当组件的状态或props发生改变时,组件会进入更新阶段。在这个阶段,组件会经历以下几个生命周期方法:

  1. shouldComponentUpdate() :该方法在组件接收到新的props或状态时被调用,可以决定是否需要更新组件。
  2. getDerivedStateFromProps() :该方法在组件接收到新的props时被调用,可以根据新的props更新组件状态。
  3. render() :渲染方法用于生成组件的虚拟DOM表示。
  4. componentDidUpdate() :组件更新之后被调用,常用于执行一些与DOM相关的操作,例如更新DOM元素的样式或内容。

卸载(Unmounting)

当组件从DOM中被移除时,组件会进入卸载阶段。在这个阶段,组件会经历以下几个生命周期方法:

  1. componentWillUnmount() :该方法在组件从DOM中被移除之前被调用,常用于执行一些清理工作,例如取消事件监听器或释放资源。

生命周期执行顺序

React组件的生命周期方法按照一定的顺序执行,如下所示:

  1. constructor()
  2. getDerivedStateFromProps()
  3. render()
  4. componentDidMount()
  5. shouldComponentUpdate()
  6. getDerivedStateFromProps()
  7. render()
  8. componentDidUpdate()
  9. componentWillUnmount()

请注意,并不是所有的生命周期方法都会在每个组件中被使用。例如,如果组件的状态或props没有改变,则不会调用shouldComponentUpdate()和componentDidUpdate()方法。