在 React 中,组件的生命周期包括以下不同的阶段
-
挂载阶段 (Mounting Phase)
constructor()
:组件实例化时调用,用于初始化状态和绑定方法。static getDerivedStateFromProps(props, state)
:在组件实例化及接收新的 props 时调用,可以根据新的 props 更新状态。render()
:将组件的 JSX 标记转换为虚拟 DOM 元素。componentDidMount()
:组件插入真实 DOM 后调用,可以进行网络请求和初始化操作。
-
更新阶段 (Updating Phase)
static getDerivedStateFromProps(props, state)
:相同于挂载阶段,但是也会在组件接收到新的 props 时调用。shouldComponentUpdate(nextProps, nextState)
:在进行组件更新之前调用,可以通过返回值控制是否进行后续的渲染操作。render()
:将组件的 JSX 标记转换为虚拟 DOM 元素。getSnapshotBeforeUpdate(prevProps, prevState)
:在更新之前获取 DOM 快照,并传递给componentDidUpdate
方法。componentDidUpdate(prevProps, prevState, snapshot)
:组件完成更新后调用,可以进行 DOM 操作和网络请求等。
-
卸载阶段 (Unmounting Phase)
componentWillUnmount()
:组件从 DOM 中移除之前调用,用于清理定时器、取消订阅等资源的释放。
-
错误处理阶段 (Error Handling Phase)
static getDerivedStateFromError(error)
:在子组件抛出异常后调用,用于更新组件的状态来展示错误信息。componentDidCatch(error, info)
:在子组件抛出异常后调用,可以用于记录错误信息并进行错误边界的处理。