当前位置: 首页 > news >正文

React:生命周期

React 生命周期分为三个阶段:挂载(Mounting)、更新(Updating)和卸载(Unmounting)

挂载阶段(Mounting)

一般会在这个阶段做一些数据获取、事件监听、向服务端发送请求、事件绑定等操作

constructor()
初始化状态(state)和绑定方法。通常在构造函数中完成初始数据的设置。

static getDerivedStateFromProps(props, state)
静态方法
时机:在 render 前调用,用于根据props更新state。必须返回一个对象或null。

render()
返回JSX结构,负责组件的渲染逻辑。必须为纯函数,不直接修改状态或与浏览器交互。

componentDidMount()
组件挂载完成后触发。适合执行DOM操作、网络请求或订阅事件等副作用。


更新阶段(Updating)

static getDerivedStateFromProps(props, state)
与挂载阶段相同,在每次更新前调用。

shouldComponentUpdate(nextProps, nextState)
通过返回truefalse决定是否重新渲染。用于性能优化。

render()
重新渲染组件。

getSnapshotBeforeUpdate(prevProps, prevState)
时机:在 render 之后执行
目的:获取组件更新前的信息
在DOM更新前捕获信息(如滚动位置)。返回值传给componentDidUpdate

componentDidUpdate(prevProps, prevState, snapshot)
时机:组件更新完成后执行,可操作DOM或发起网络请求。


卸载阶段(Unmounting)

componentWillUnmount()
时机:组件卸载前调用,用于清理定时器、取消网络请求或移除事件监听。


废弃的生命周期方法

部分方法(如componentWillMountcomponentWillReceiveProps)已被标记为废弃,推荐使用替代方案(如getDerivedStateFromProps)。

函数组件的替代方案

通过useEffect Hook模拟生命周期行为:

  • useEffect(() => {}, []) 替代componentDidMount(依赖项为空数组)。
  • useEffect(() => { return () => {} }) 替代componentWillUnmount(返回清理函数)。
  • useEffect(() => {}, [deps]) 替代componentDidUpdate(依赖项变化时触发)。
http://www.dtcms.com/a/318199.html

相关文章:

  • 二、Istio流量治理(一)
  • 佳文鉴赏 || FD-LLM:用于机器故障诊断的大规模语言模型
  • 性能为王:一次从压测到调优的实战全流程复盘
  • PHP常用日期时间函数
  • 线程-线程池篇(二)
  • 【CSS】动态修改浏览器滚动条宽度
  • 楼宇自控系统对建筑碳中和目标的实现具重要价值
  • MCU程序的ARM-GCC编译链接
  • Powershell---替换文本文件中指定行的整行内容
  • K8S云原生监控方案Prometheus+grafana
  • Java throw exception时需要重点关注的事情!
  • TCP的三次握手和四次挥手实现过程。以及为什么需要三次握手?四次挥手?
  • 使用Cursor创建iOS应用
  • Xcode 26 如何在创建的 App 包中添加特定的目录
  • 北大、蚂蚁三个维度解构高效隐私保护机器学习:前沿进展+发展方向
  • 安装Chocolatey一文通
  • IPS知识点
  • Ubuntu设置
  • 从零开始用 Eclipse 写第一个 Java 程序:HelloWorld 全流程 + 避坑指南
  • Vscode 解决 git插件Failed to connect to github.com port 443 connection timed out
  • prometheus+Grafana 监控中间件项目
  • ROG 掌机 X:便携游戏新宠,开启微观生存冒险
  • 部署Web UI自动化测试平台:SeleniumFlaskTester
  • 魔法客栈 v0.74(Magic Inn)免安装中文版,破木屋逆袭五星城堡
  • Pytorch-07 如何快速把已经有的视觉模型权重扒拉过来为己所用
  • X86-ubuntu22.04远程桌面只有1/4无法正常操作
  • Linux学习-4用户/权限
  • 防火墙(firewalld)
  • 数字农业气象站如何助力农田发展
  • 接口开发API 接入实战解析:京东商品实时数据赋能