【react】react生命周期钩子函数:

news2024/9/23 5:17:35

文章目录

        • 一、生命周期概念:
        • 二、生命周期:
        • 三、挂载阶段(constructor => render => componentDidMount):
        • 四、更新阶段(render => componentDidUpdate):
        • 五、卸载阶段(componentWillUnmount ):


一、生命周期概念:

  1. 生命周期:简单来说就是一个事物从出生到消亡的过程就是生命周期,在React中的生命周期,就是组件从创建、挂载到页面再到卸载组件的过程。
  2. 意义:生命周期有助于理解组件运行方式、完成复杂组件功能、分析组件中间问题产生的原因等。
  3. 生命周期钩子函数:为开发人员在不同阶段操作提供时机

二、生命周期:

在这里插入图片描述

三、挂载阶段(constructor => render => componentDidMount):

挂载阶段生命周期钩子函数有三个,执行顺序是 constructor => render => componentDidMount

钩子函数触发时机作用
constructor创建组件时,最先执行1. 初始化 state 2. 创建 Ref 等
render每次组件渲染都会触发渲染 UI(注意: 不能调用 setState() )
componentDidMount组件挂载(完成 DOM 渲染)后1. 发送网络请求 2.DOM 操作

四、更新阶段(render => componentDidUpdate):

更新阶段常用的生命周期函数有 2 个,执行顺序是 render => componentDidUpdate
触发更新:setState()、forceUpdate()、New props(父组件进行了 render)

钩子函数触发时机作用
render每次组件渲染都会触发渲染 UI(与挂载阶段是同一个 render)
componentDidUpdate组件更新(完成 DOM 渲染)后DOM 操作,可以获取到更新后的 DOM 内容,不要调用 setState

五、卸载阶段(componentWillUnmount ):

触发时机:组件从页面中消失。
ReactDOM.unmountComponentAtNode(document.getElementById(‘root’))

钩子函数触发时机作用
componentWillUnmount组件卸载(从页面中消失)执行清理工作(比如:清理定时器等、解绑事件等)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/834323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32+微信小程序设计的个人健康助手(腾讯云IOT)

一、设计需求 1.1 项目背景 21世纪,社会高速发展,生活物质越来越丰富。为了追求更高的物质享受,人们不断消耗人体健康机制去拼搏,导致身体抵抗能力下降,引发各种疾病。因此,身体健康状况越来越备受大家的关注,健康意识也得到普遍提高。正常的体温是保障人体内部器官工…

【雕爷学编程】MicroPython动手做(36)——MixPY之Hello world 2

MixPY——让爱(AI)触手可及 主控芯片:K210(64位双核带硬件FPU和卷积加速器的 RISC-V CPU) 显示屏:LCD_2.8寸 320*240分辨率,支持电阻触摸 摄像头:OV2640,200W像素 扬声器:3W单…

Linux中提示No such file or directory解决方法

说明: 在linux下,./xxx.sh执行shell脚本时会提示No such file or directory。但shell明明存在,为什么就是会提示这个呢? 这种其实是因为编码方式不对,如你在win下编辑sh,然后直接复制到linux下面 实现&…

使用idea如何生成webservice客户端

需求阐述 在和外围系统对接的时候,对方只给了wsdl地址,记得之前了解到的webservice,可以用idea生成客户端代码。先记录生成的步骤 使用idea如何生成webservice客户端 1.创建一个Java项目 2.第二步生成代码 我的idea再右键要生成文件目录里…

使用 LangChain 搭建基于 Amazon DynamoDB 的大语言模型应用

LangChain 是一个旨在简化使用大型语言模型创建应用程序的框架。作为语言模型集成框架,在这个应用场景中,LangChain 将与 Amazon DynamoDB 紧密结合,构建一个完整的基于大语言模型的聊天应用。 本次活动,我们特意邀请了亚马逊云科…

stm32与上位机电脑间最快的通信方式是什么?

对于小型多关节机械臂的控制电路设计,选择合适的通信方式可以提高MCU与上位机之间的实时性。以下是一些在STM32上常用的通信方式,你可以根据你的具体需求选择适合的: 串口通信(UART):串口通信是一种常见的…

小米平板6将推14英寸版!与MIX Fold 3同步推出

今天,知名数码博主数码闲聊站爆料消息,称小米平板6将推出一款Max版本,预计与小米MIX Fold 3同步推出。 据介绍,小米平板6 Max将是小米首款14英寸大屏的旗舰平板,平板搭载骁龙8处理器,在性能释放、影音表现、…

硅谷AI启示录,中国式AI 避坑指南

点击关注 ​ 《AI未来指北》栏目由腾讯新闻推出,邀约全球业内专家、创业者、投资人,探讨AI领域的技术发展、商业模式、应用场景及治理挑战,本期聚焦硅谷近期AI投融资现状。 文丨郝 鑫 编丨苏扬、刘雨琦、王一粟 一扫去年裁员、股价暴跌的阴霾…

Spring和其IOC和DI

spring是干什么的? Spring 是一个开源的Java应用程序框架,最初由Rod Johnson在2003年创建。Spring 的初衷是为了简化企业级Java应用程序的开发,并提供一种灵活、可扩展、易于测试和维护的编程模型。 先来看看Spring 框架诞生的初衷&#xff…

如何从Pytorch中导出ONNX模型并使用它实现图像超分

前言 在本教程中,我们将介绍如何将 PyTorch 中定义的模型转换为 ONNX 格式,然后使用 ONNX 运行时运行它。 ONNX 运行时是面向 ONNX 模型的以性能为中心的引擎,可跨多个平台和硬件(Windows、Linux 和 Mac)以及 CPU 和 G…

Qlik Sense Desktop安装配置

Qlik Sense 是一种数据可视化分析的产品,允许从多个数据原进行数据读取并进行分析。而Qlik Sense Desktop作为桌面端的解决方案,为用户提供可视化创建、交互数据可视化、报告和仪表板等功能,目前只支持Windows系统。 注意:事先需要…

设计模式、Java8新特性实战 - List<T> 抽象统计组件

一、背景 在日常写代码的过程中,针对List集和,统计里面的某个属性,是经常的事情,针对List的某个属性的统计,我们目前大部分时候的代码都是这样写,每统计一个变量,就要定义一个值,且…

C++、python双语言弹窗教程与对比

Messagebox弹窗 MessageBox指的是显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。消息框中返回一个整数值,该值指示用户单击了哪个按钮。 例子: 本文介绍了用C、Pytho…

STM32基础入门学习笔记:核心板 电路原理与驱动编程

文章目录: 一:LED灯操作 1.LED灯的点亮和熄灭 延迟闪烁 main.c led.c led.h BitAction枚举 2.LED呼吸灯(灯的强弱交替变化) main.c delay.c 3.按键控制LED灯 key.h key.c main.c 二:FLASH读写程序(有…

数据安全能力框架模型-详细解读(二)

数据安全能力框架构成 1) 数据安全治理 管理视角:从组织制度流程上提出要求,由于数据在各业务系统之间流转,需要设立高级管理层参与决策的数据安全管理部门,统筹和规划多部门之间的工作;需要设立跨组织的…

34.利用matlab解 多变量多目标规划问题(matlab程序)

1.简述 学习目标:适合解 多变量多目标规划问题,例如 收益最大,风险最小 主要目标法,线性加权法,权值我们可以自己设定。 收益函数是 70*x(1)66*x(2) ; 风险函数是 0.02*x(1)^20.01*x(2)^20.04*(x…

RabbitMQ 备份交换机和死信交换机

为处理生产者生产者将消息推送到交换机中,交换机按照消息中的路由键即自身策略无法将消息投递到指定队列中造成消息丢失的问题,可以使用备份交换机。 为处理在消息队列中到达TTL的过期消息,可采用死信交换机进行消息转存。 通过上述描述可知&…

c高级day2shell指令

一编程语言 编程语言面向过程c面向对象c编译型语言c\c解释性语言shell脚本\python 需要解析器 二shell脚本 2.1操作系统的结构 应用层:app\代码 应用层通过shell解析器完成和内核层的交互 --------------------------------------- 内核层:内核的五大功能:1、设…

Django的FBV和CBV

Django的FBV和CBV 基于django开发项目时,对于视图可以使用 FBV 和 CBV 两种模式编写。 FBV,function base views,其实就是编写函数来处理业务请求。 from django.contrib import admin from django.urls import path from app01 import view…

SIT3232E——高静电防护 3.3V 单电源供电双通道 RS232 收发器,可替代MAX3232

SIT3232E 是一款 3.0V~5.5V 供电、双通道、低功耗、高静电防护 ESD 保护,完全满足 TIA/EIA-232 标准要求的 RS-232 收发器。 SIT3232E 包括两个驱动器和两个接收器,具有增强形 ESD 保护功能,达到 15kV 以上 HBM ESD 、 8kV …