返回
React 生命周期从初始化到卸载的详细解析
前端
2024-02-04 20:16:38
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 组件。