我的编程空间,编程开发者的网络收藏夹
学习永远不晚

react引入虚拟dom的原因是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

react引入虚拟dom的原因是什么

这篇“react引入虚拟dom的原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react引入虚拟dom的原因是什么”文章吧。

因为在react中会出现定义大量实际dom的情况,需要频繁的操作大量实际dom,这样会带来访问性能的严重下降,所以需要引入虚拟dom,避免频繁的dom操作带来的性能下降问题,虚拟dom可以更好地提升页面性能。

本教程操作环境:Windows10系统、react16.4.0版、Dell G3电脑。

react为什么要引入虚拟dom

React框架的核心之一就是虚拟DOM,相对于实际DOM而言,虚拟DOM可以更好地提升页面性能。

为什么要使用虚拟DOM?

通常设计人员在设计传统HTML网页的UI时, 都会在页面中定义若干的DOM元素, 这些DOM元素是所谓的实际DOM。实际DOM负责承载着外观表现和数据变化,任何外观形式的改变或数据信息的更新都要反馈到UI上, 都是需要通过操作实际DOM来实现的。但对于复杂的页面UI而言, 往往会定义大量的实际DOM。频繁地操作大量实际DOM, 往往会带来访问性能的严重下降, 用户体验也会随之变差, 因此, React框架专门针对这个现象引入了虚拟DOM机制,以避免频繁的DOM操作带来的性能下降问题。

React DOM类似于一种将相关的实际DOM组合在一起的集合, 是有区别于传统概念上的DOM元素的,如果将其理解为DOM组件应该更为贴切,所以React框架将ReactDOM称为虚拟DOM。

创建虚拟DOM

纯js方式 React.createElement('h2',{},title)

JSX方式 <h2 id='myTitle'>{title}</h2>

下面感受一下实际DOM和虚拟DOM书写的区别

实际DOM

    <div id="example"></div>
    <script>
    // 实际DOM
        // 定位到div
        const divDOM = document.getElementById('example');
        // 创建DOM控件
        const jsSpan = document.createElement('span');
        const jsH3 = document.createElement('h4');
        jsH3.innerHTML = '实际DOM';
        const jsP = document.createElement('p');
        jsP.innerHTML = 'Hello World!';
        jsSpan.appendChild(jsH3);
        jsSpan.appendChild(jsP);
        divDOM.appendChild(jsSpan);
    </script>

虚拟DOM

在使用React框架之前需要提前导入React的js库

    <!-- react的核心库 -->
    <script class="lazy" data-src="../React/react.development.js"></script>
    <!-- react的DOM库 -->
    <script class="lazy" data-src="../React/react-dom.development.js"></script>
    <!-- 编译器 将ES6转换为ES5 -->
    <script class="lazy" data-src="../React/babel.min.js"></script>
    <div id="example"></div>
    <script type="text/babel">// type必须有
    // 虚拟DOM
        const divReact = document.getElementById('example');
        const reactH3 = React.createElement('h4',{},'虚拟DOM');
        const reactP = React.createElement('p',{},'Hello World!');
        const reactSpan = React.createElement('span',{},reactH3,reactP);
        ReactDOM.render(reactSpan,divReact);// 将reactSpan插入divReact
    </script>

以上就是关于“react引入虚拟dom的原因是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

react引入虚拟dom的原因是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue中简单的虚拟DOM是什么样

这些年写前端vue时经常碰到虚拟DOM这个单词,但都是听到就算了,左耳进右耳出,知道有这么个东西就完了,因为感觉也没有影响我实现公司的产品业务逻辑。今天在这里想花点时间探讨下虚拟DOM相关的知识,给自己补补课
2022-11-13

mysql索引快的原因是什么

本篇内容主要讲解“mysql索引快的原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql索引快的原因是什么”吧!索引就是通过事先排好序,从而在查找时可
2023-04-14

docker虚拟化的原理是什么

Docker 虚拟化的原理主要是基于 Linux 内核的 cgroups(控制组)和 namespaces(命名空间)技术实现的。cgroups:cgroups 是 Linux 内核中用于限制、控制和监视进程组的资源消耗的一种机制,它可以将
docker虚拟化的原理是什么
2024-04-09

react中引入css的方式是什么

这篇“react中引入css的方式是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react中引入css的方式是什么”文
2023-06-30

Vue中动态引入图片要require的原因是什么

这篇“Vue中动态引入图片要require的原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue中动态引入图片要r
2023-07-04

react推荐函数组件的原因是什么

这篇文章主要讲解了“react推荐函数组件的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react推荐函数组件的原因是什么”吧!原因:1、函数组件语法更短、更简单,这使得它更容易
2023-07-04

MySQL选错索引的原因是什么

本篇内容介绍了“MySQL选错索引的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.引例首先创建一张表,并对字段a,b分别建立索
2023-07-05

Vue $nextTick能获取到最新Dom的原因是什么

这篇文章主要介绍“Vue $nextTick能获取到最新Dom的原因是什么”,在日常操作中,相信很多人在Vue $nextTick能获取到最新Dom的原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”V
2023-07-04

xp系统不能安装虚拟打印机的原因是什么

今天就跟大家聊聊有关xp系统不能安装虚拟打印机的原因是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。虚拟打印机并不是客观上存在的打印机,而是用来生成PS文件的虚拟打印机。客观上存
2023-06-14

外贸网站首选美国虚拟主机的原因是什么

美国虚拟主机提供的网络速度较快,可以更好地满足外贸网站对于高速稳定网络的需求。美国虚拟主机有较为完善的技术支持体系,能够及时解决网站出现的技术问题,确保外贸网站的正常运行。美国虚拟主机提供的服务器硬件设备和软件环境较为先进和稳定,可以更好地
外贸网站首选美国虚拟主机的原因是什么
2024-04-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录