返回

React 生命周期从初始化到卸载的详细解析

前端

React 是一款非常受欢迎的前端框架,它使用组件化的思想来构建用户界面。每个组件都有自己的生命周期,从初始化到卸载,都会经历一系列的阶段。了解这些阶段并正确地使用生命周期钩子,可以帮助我们更好地编写 React 组件。

React 生命周期各个阶段介绍

初始化阶段

  • constructor()
    这个方法是组件的构造函数,它在组件创建时被调用。
  • getDerivedStateFromProps()
    这个方法会在组件挂载之前调用,用于根据 props 计算并返回一个对象,该对象将与组件 state 合并。

挂载阶段

  • componentDidMount()
    这个方法在组件挂载之后调用,通常用于执行一些初始化操作,例如发起 AJAX 请求或设置定时器。

更新阶段

  • shouldComponentUpdate()
    这个方法在组件即将更新之前调用,它可以返回一个布尔值来决定是否需要更新组件。
  • getDerivedStateFromProps()
    这个方法在组件更新之前调用,用于根据 props 计算并返回一个对象,该对象将与组件 state 合并。
  • render()
    这个方法在组件更新之前调用,它返回一个 React 元素树,该元素树将被渲染到 DOM 中。
  • componentDidUpdate()
    这个方法在组件更新之后调用,通常用于执行一些更新后的操作,例如滚动页面或更新本地存储。

卸载阶段

  • componentWillUnmount()
    这个方法在组件卸载之前调用,它可以用于执行一些清理操作,例如取消定时器或注销事件监听器。

React 生命周期中钩子函数的调用时机和用途

生命周期阶段 钩子函数 调用时机 用途
初始化阶段 constructor() 组件创建时 初始化组件状态和绑定事件处理函数
初始化阶段 getDerivedStateFromProps() 组件挂载之前 根据 props 计算组件状态
挂载阶段 componentDidMount() 组件挂载之后 执行一些初始化操作,例如发起 AJAX 请求或设置定时器
更新阶段 shouldComponentUpdate() 组件即将更新之前 决定是否需要更新组件
更新阶段 getDerivedStateFromProps() 组件更新之前 根据 props 计算组件状态
更新阶段 render() 组件更新之前 返回一个 React 元素树,该元素树将被渲染到 DOM 中
更新阶段 componentDidUpdate() 组件更新之后 执行一些更新后的操作,例如滚动页面或更新本地存储
卸载阶段 componentWillUnmount() 组件卸载之前 执行一些清理操作,例如取消定时器或注销事件监听器

总结

React 生命周期从初始化到卸载,都会经历一系列的阶段。了解这些阶段并正确地使用生命周期钩子,可以帮助我们更好地编写 React 组件。