组件的挂载和渲染

news2024/11/16 23:58:13

React的挂载和渲染

React的生命周期中包括三个主要的阶段:挂载、渲染以及卸载。

很多小伙伴包括我自己可能对挂载和渲染的概念比较模糊,今天这篇文章主要的目的是为了解答我们的这个小疑惑~

这张图是从其他地方搬运过来的,这张图中描述的主要是class组件的过程。
在这里插入图片描述
通过这张图,我们知道【挂载】是发生在class组件的constructor之后的,我们可以理解为挂载其实就是首次渲染,通过componentDidMount的含义也可以知道这个生命周期描述的是组件挂载完成,即它前面的render函数已经将JSX转换为了DOM结构。表明现在DOM树结构是已经搭建好了。

后续由于props或者state更新引起的重新渲染,是与【挂载】这个概念完全无关的,涉及的变化都是渲染,即重新渲染。因为我们的DOM树是在页面打开的时候进行首次挂载的,后面的变化都是在原有DOM树的结构上去进行更新。

好的,下面我们来总结一下:
React的挂载和渲染是两个不同的概念,它们在React组件的生命周期中的不同阶段发生。

  • 挂载(Mounting)是指React组件被添加到DOM中的过程。当组件第一次被加载到页面上时,React会将组件实例化,并将组件渲染成真实的DOM节点,最后将该节点插入到页面中指定的位置。

  • 渲染(Rendering)是指React组件在更新时重新绘制UI的过程。当组件的状态发生变化时,React会重新执行渲染函数并生成一个新的虚拟DOM树。然后React将新的虚拟DOM树与旧的虚拟DOM树进行比较,找出需要更新的部分,并将变化的部分渲染到真实的DOM节点中。

相信通过上面的分析,我们对于挂载和渲染的概念有了一定的认知,后续我会从源码角度进行分析,不断鞭策自己成长~

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

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

相关文章

直播间自动点赞第一章:MouseEvent 实现根据坐标X,Y自动点击浏览器的效果

最终项目 制作一个自动点赞的浏览器插件,可以根据用户指定一个浏览器区域,进行自动化点击,其中可以设置参数:点击频率、指定区域。 本章节效果 指定了一块区域,进行点击,这边是模拟直播间实现自动化点击 …

【Java 进阶篇】JDBC数据库连接池Druid工具类详解

在Java应用程序中,数据库连接是一种重要的资源,因为每次创建和销毁数据库连接都会产生开销,降低了系统性能。为了高效地管理数据库连接,降低资源消耗,常常使用数据库连接池。Druid是一个功能强大的数据库连接池&#x…

成品短视频App源码:10个最热门的功能模块详解

作为成品短视频App源码领域的专家,我将为您揭开成品短视频App的神秘面纱。在这篇文章中,我将详细介绍这热门应用背后的10个最受欢迎的功能模块。无论您是想开发一款创新的短视频App,还是寻找适合您业务的现成解决方案,本文都会为您…

递归

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻汉诺塔 👉&…

C#Winform新建工程

C#Winform新建工程 选择创建新项目 搜索窗体 填写工程名称和位置

第四课 递归、分治

文章目录 第四课 递归、分治lc78.子集--中等题目描述代码展示 lc77.组合--中等题目描述代码展示 lc46.全排列--中等题目描述代码展示 lc47.全排列II--中等题目描述代码展示 lc226.翻转二叉树--简单题目描述代码展示 lc98.验证二叉搜索树--中等题目描述代码展示 lc104.二叉树的最…

八、Thymeleaf链接表达式

链接表达式使用@符开头,用于描述一个URL,url可以是相对的,也可以是绝对的。当为相对路径时,此表达式用于在指定的URI前拼接项目的根路径,相当于request.getContextPath()。当为绝对路径时,路径按…

纳百川冲刺创业板上市:计划募资约8亿元,宁德时代为主要合作方

近日,纳百川新能源股份有限公司(下称“纳百川”)向深交所创业板递交的上市申请材料获得受理,浙商证券为其独家保荐人。 本次冲刺上市,纳百川计划募资8.29亿元,将用于纳百川(滁州)新能…

【力扣-每日一题】901. 股票价格跨度

暴力解法&#xff1a; class StockSpanner { private:vector<int> pri; public:StockSpanner() {}int next(int price) {pri.emplace_back(price);int count0;for(int ipri.size()-1;i>0;i--){if(pri[i]<price)count;else break;}return count;} };/*** Your Stoc…

软件工程与计算总结(五)软件需求基础

本帖介绍软件需求涉及的诸多基本概念&#xff0c;通过对这些概念的阐述&#xff0c;剖析软件需求的来源、层次、类别、作用等重要知识~ 目录 ​编辑 一.引言 二.需求工程基础 1.简介 2.活动 3.需求获取 4.需求分析 5.需求规格说明 6.需求验证 7.需求管理 三.需求基…

第85步 时间序列建模实战:CNN回归建模

基于WIN10的64位系统演示 一、写在前面 这一期&#xff0c;我们介绍CNN回归。 同样&#xff0c;这里使用这个数据&#xff1a; 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal Syndrome i…

比特币的惊人飙升:“ 自最初定价高于零以来,价格飙升了 3,600,000,000% !“

10 月6 日是第一个比特币用户计算比特币价格的周年纪念日&#xff0c;这表明他们愿意购买或出售数字货币。 14年前的这一天&#xff0c;比特币价格诞生了。 正如比特币历史学家Pete Rizzo今天在 X 上发表的一篇文章中指出的那样 &#xff0c;”10 月 6 日是早…

【时间之外】EA交易代码入门

目录 MetaEditor简介 最简单的EA交易代码 代码编译 EA附加到图表 EA测试 EA正式上线 注意事项 本不打算写这篇文章&#xff0c;后来看到CSDN里有很多介绍交易软件的文章&#xff0c;平时也碰到很多人问我自动化交易的问题&#xff0c;还是写一篇科普文章&#xff0c;毕竟…

详细介绍区块链之挖矿

对不起&#xff0c;大家&#xff0c;这篇文章对作者来说实在是太有意义和含金量了&#xff0c;作者想把它设置为关注博主才能见全文&#xff0c;请大家理解&#xff01;如果觉得还是看不懂&#xff0c;抱歉耽误大家的时间&#xff0c;就请取消关注&#xff01;&#xff01;&…

开源即时通讯IM框架 MobileIMSDK v6.4 发布

一、更新内容简介 本次更新为次要版本更新&#xff0c;进行了若干优化&#xff08;更新历史详见&#xff1a;码云 Release Notes、Github Release Notes&#xff09;。MobileIMSDK 可能是市面上唯一同时支持 UDPTCPWebSocket 三种协议的同类开源IM框架。 二、MobileIMSDK简介…

EverWeb for Mac:轻松创建出色网站的强大网页设计软件

如果你正在寻找一款优质的网页设计软件&#xff0c;那么EverWeb for Mac绝对值得考虑。这款软件旨在为用户提供专业级的网站建设工具&#xff0c;帮助你轻松创建出令人印象深刻的网站。 在EverWeb for Mac中&#xff0c;用户可以快速轻松地创建网站布局和设计。该软件支持各种…

Linux 系统为何产生大量的 core 文件?

Author&#xff1a;rab 目录 一、问题分析二、解决方案扩展 一、问题分析 上一篇刚讲到《Docker 配置基础优化》&#xff0c;这里再补充一下。就在中秋国庆这段小长假里&#xff0c;接收到了线上服务器磁盘告警通知&#xff0c;线上服务器架构是一个 Docker Swarm 集群&#x…

flutter开发实战-video_player插件播放抖音直播实现(仅限Android端)

flutter开发实战-video_player插件播放抖音直播实现&#xff08;仅限Android端&#xff09; 在之前的开发过程中&#xff0c;遇到video_player播放视频&#xff0c;通过查看video_player插件描述&#xff0c;可以看到video_player在Android端使用exoplayer&#xff0c;在iOS端…

一个例子帮您掌握python正则re.match、re.search和re.findall的区别

在使用python正则进行字符串匹配查询时&#xff0c;最常用的三个函数是re.match、re.search和re.findall&#xff0c;在这里我就用一个例子带大家了解这三者的使用区别&#xff0c;话不多说我们直接上代码&#xff01; import re txt"test,a:123,b:1234,c:12345,hello!&…

二叉树--翻转二叉树

文章前言&#xff1a;如果有小白同学还是对于二叉树不太清楚&#xff0c;作者推荐&#xff1a;二叉树的初步认识_加瓦不加班的博客-CSDN博客 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 如果思路不清楚&#xff0c;请看动态页面&am…