【React】react的生命周期

react的生命周期

  • 一、新生命周期
    • 1、挂载阶段
      • 1.1 constructor
        • (1)在React组件挂载之前被调用
        • (2) 初始化函数内部 state或者在this上挂载方法
      • 1.2 getDerivedStateFromProps
        • (1)为静态方法,不能访问到组件实例this
        • (2)在创建或更新阶段调用或者在props、state和render方法前调用
        • (3)返回一个对象来更新 state, 如果返回 null 则不更新任何内容
      • 1.3 render
        • (1)用于渲染DOM结构
        • (2)不要在 render 里面 setState, 否则会触发死循环导致内存崩溃
      • 1.4 componentDidMount
        • (1) 挂载到真实DOM节点后执行,render方法之后执行
        • (2)是发送网络请求、启用事件监听方法的好时机
    • 2、更新阶段
      • 1.1 getDerivedStateFromProps
        • (1) 在创建或更新阶段调用或者在props、state和render方法前调用
      • 1.2 shouldComponentUpdate
        • (1)在组件更新之前调用,可以控制组件是否进行更新, 返回true时组件更新, 返回false则不更新
        • (2)不要 shouldComponentUpdate 中调用 setState(),否则会导致无限循环调用更新、渲染,直至浏览器内存崩溃
      • 1.3 render
      • 1.4 getSnapshotBeforeUpdate
        • (1) render后执行,获取组件更新前的信息,即将对组件进行挂载时调用。
      • 1.5 componentDidUpdate
        • (1)组件更新结束后触发。首次渲染不会执行
    • 3、卸载阶段
      • 1.1 componentWillUnmount
        • (1)组件卸载前调用
        • (2)此生命周期是取消网络请求、移除监听事件、清理 DOM 元素、清理定时器等操作的好时机
  • 二、 旧生命周期
    • 1、挂载阶段
      • constructor
      • componentWillMount(废弃)
      • render
      • componentDidMount
    • 2、更新阶段
      • componentWillReceiveProps(废弃)
      • shouldComponentUpdate
      • componentWillUpdate(废弃)
      • render
      • componentDidUpdate
    • 3、卸载阶段
      • componentWillUnmount

一、新生命周期

1、挂载阶段

1.1 constructor

(1)在React组件挂载之前被调用
(2) 初始化函数内部 state或者在this上挂载方法

1.2 getDerivedStateFromProps

(1)为静态方法,不能访问到组件实例this
(2)在创建或更新阶段调用或者在props、state和render方法前调用
(3)返回一个对象来更新 state, 如果返回 null 则不更新任何内容

1.3 render

(1)用于渲染DOM结构
(2)不要在 render 里面 setState, 否则会触发死循环导致内存崩溃

1.4 componentDidMount

(1) 挂载到真实DOM节点后执行,render方法之后执行
(2)是发送网络请求、启用事件监听方法的好时机

2、更新阶段

1.1 getDerivedStateFromProps

(1) 在创建或更新阶段调用或者在props、state和render方法前调用

1.2 shouldComponentUpdate

(1)在组件更新之前调用,可以控制组件是否进行更新, 返回true时组件更新, 返回false则不更新
(2)不要 shouldComponentUpdate 中调用 setState(),否则会导致无限循环调用更新、渲染,直至浏览器内存崩溃

1.3 render

1.4 getSnapshotBeforeUpdate

(1) render后执行,获取组件更新前的信息,即将对组件进行挂载时调用。

1.5 componentDidUpdate

(1)组件更新结束后触发。首次渲染不会执行

3、卸载阶段

1.1 componentWillUnmount

(1)组件卸载前调用
(2)此生命周期是取消网络请求、移除监听事件、清理 DOM 元素、清理定时器等操作的好时机

二、 旧生命周期

1、挂载阶段

constructor

componentWillMount(废弃)

render

componentDidMount

2、更新阶段

componentWillReceiveProps(废弃)

shouldComponentUpdate

componentWillUpdate(废弃)

render

componentDidUpdate

3、卸载阶段

componentWillUnmount

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

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

相关文章

快速了解Redis

Redis是什么? Redis是一个数据库,是一个跨平台的非关系型数据库,Redis完全开源,遵守BSD协议。它通过键值对(Key-Value)的形式存储数据。 它与mysql数据库有什么区别? redis通过键值对(Key-Value)的形式存储数据&…

springboot源码解析之Model和Map参数解析

springboot源码解析之Model和Map参数解析 标签:源码:springboot 测试代码 Controller public class HelloController {RequestMapping("/helloModelAndMap")public String helloModelAndMap(HttpServletRequest request, Model model, Map<String, Object> …

万物皆可Find My,伦茨科技ST17H6x芯片赋能产品苹果Find My功能

苹果的Find My功能使得用户可以轻松查找iPhone、Mac、AirPods以及Apple Watch等设备。如今Find My还进入了耳机、充电宝、箱包、电动车、保温杯等多个行业。苹果发布AirTag发布以来&#xff0c;大家都更加注重物品的防丢&#xff0c;苹果的 Find My 就可以查找 iPhone、Mac、Ai…

[ISP]DCT离散余弦变换及C++代码demo

1.基本定义 离散余弦变换(DCT for Discrete Cosine Transform) DCT&#xff08;Discrete Cosine Transform&#xff0c;离散余弦变换&#xff09;是一种常用的信号处理技术&#xff0c;广泛应用于图像处理、音频处理、视频压缩等领域。DCT将一个信号或数据序列从时域&#xf…

TensorFlow 与pytorch

TensorFlow 与pytorch 介绍 TensorFlow 的基本概念和使用场景python 搭建 tensorflow 介绍 pytorch 的基本概念和使用场景PyTorch中搭建模型 TensorFlow与pytorchTensorFlow与pytorch的区别TensorFlow与pytorch的联系TensorFlow与pytorch各自的开发团队TensorFlow与pytorch之外…

【Tauri】(5):本地运行candle和 qwen 大模型,并测试速度

1&#xff0c;本地运行candle 关于candle项目 https://github.com/huggingface/candle Hugging Face 使用rust开发的高性能推理框架。 语法简单&#xff0c; 风格与 PyTorch 相似。 CPU 和 Cuda Backend&#xff1a;m1、f16、bf16。 支持 Serverless&#xff08;CPU&#xff…

Angular变化检测 2.0版本学习

在学习如何在Angular中实现文字逐字显示的过程中&#xff0c;我发现要保证用户的体验感的关键点在于&#xff1a;如何确保实时更新.html页面的内容显示&#xff0c;保证及时在UI界面反应出后端返回的数据? 那如何解决这个问题呢&#xff1f;其实我在博客中有提到过这个问题的…

简单两步,从补税到退税

大家好&#xff0c;我是拭心。 最近到了一年一度的个人所得税年度申报时期&#xff0c;有人可以退好几千&#xff0c;而有的人则需要补上万元&#xff0c;人类的悲喜这一刻并不相通。 我申报的时候&#xff0c;提示我需要补税一万多&#xff0c;心有不甘但差一点就认了&#xf…

java SSM科研管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM科研管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S…

每天学习一个Linux命令之kill

每天学习一个Linux命令之kill 介绍 在Linux系统中&#xff0c;kill命令用于终止或发送信号给正在运行的进程。它是管理进程的一个重要工具&#xff0c;允许用户通过发送信号来控制进程的行为。本文将详细介绍kill命令可用的选项及其用法。 命令格式 kill [选项] <进程ID…

Python基础面试编程知识-杂

文章目录 1、 循环 1-100求和2、删除字典键 del3、合并字典update4、列表去重5、函数中 (*args,**kwargs)的意义6、python2和python3中的range函数区别7、什么样的语言能够用装饰器8、python内建数据类型9、__init__,__new__10、with 方法11、python 中可变数据类型和不可变数据…

796.子矩阵的和(acwing)

文章目录 796.子矩阵的和题目描述前缀和 796.子矩阵的和 题目描述 输入一个 n 行 m 列的整数矩阵&#xff0c;再输入 q 个询问&#xff0c;每个询问包含四个整数 x1,y1,x2,y2&#xff0c;表示一个子矩阵的左上角坐标和右下角坐标。 对于每个询问输出子矩阵中所有数的和。 输…

selenium鼠标操作实战

鼠标操作实战 鼠标单击操作 click()内置鼠标操作包ActionChains鼠标双击操作double_click()鼠标右击操作context_click()鼠标指针悬浮操作move_to_element(ele)鼠标拖动操作drag_and_drop(source, target)其他鼠标操作汇总 鼠标单击操作 click() from selenium import webdriv…

python中的文件操作2

文件遍历 在Python中&#xff0c;遍历文件通常指的是逐行读取文件中的内容。这种方式对于处理大型文件特别有用&#xff0c;因为它不需要一次性将整个文件加载到内存中。下面是几种常见的遍历文件内容的方法&#xff1a; 1. 使用with语句和for循环 这是最推荐的方式&#xf…

“2024杭州智慧城市及安防展会”将于4月在杭州博览中心盛大召开

2024杭州国际智慧城市及安防展览会&#xff0c;将于4月24日在杭州国际博览中心盛大开幕。这场备受瞩目的盛会&#xff0c;不仅汇集了全球智慧城市与安防领域的顶尖企业&#xff0c;更是展示最新技术、交流创新理念的重要平台。近日&#xff0c;从组委会传来消息&#xff0c;展会…

独孤思维:买了台一千块钱的电脑干副业

01 如何让自己集中精力做一件事情&#xff1f; 之前有个圈内大佬&#xff0c;为了写作集中精力&#xff0c;硬生生买了一个一千多的电脑。 这个电脑能干嘛&#xff1f; 只能写作&#xff0c;打字&#xff0c;连视频都卡&#xff0c;游戏就更不可能了。 为的是&#xff0c;…

【网站项目】089理发店会员管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

设计模式之模版方法实践

模版方法实践案例 实践之前还是先了解一下模版方法的定义 定义 模板方法模式是一种行为设计模式&#xff0c;它定义了一个骨架&#xff0c;并允许子类在不改变结构的情况下重写的特定步骤。模板方法模式通过在父类中定义一个模板方法&#xff0c;其中包含了主要步骤&#xf…

上海亚商投顾:沪指缩量调整 机器人概念股午后大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量震荡&#xff0c;创业板指午后涨超1%&#xff0c;随后上演冲高回落走势。风电、光伏等新能源方向…