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

Vue虚拟DOM详细介绍

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

Vue虚拟DOM详细介绍

一、什么是虚拟DOM

  • 虚拟DOM是对真是DOM的抽象,以JavaScript对象(VNode节点)作为基础的树,用对象的属性来描述节点,最终可以通过一系列操作使这棵树映射到真实环境上。
  • Javascript对象中,虚拟DOM表现为一个Object对象,并且最少包含标签名(tag)、属性(attrs)和子元素对象(children)三个属性。
  • 创建虚拟DOM就是为了更好将虚拟的节点渲染到页面视图中,所以虚拟DOM对象的节点与真实DOM的属性一一照应。
  • 真实DOM
<div id="app">
    <p class="p">节点内容</p>
    <h3>{{ foo }}</h3>
</div>
  • 实例化vue
const app = new Vue({
    el:"#app",
    data:{
        foo:"foo"
    }
})
  • 观察render的render,我们能得到虚拟DOM
(function anonymous(
) {
	with(this){return _c('div',{attrs:{"id":"app"}},[_c('p',{staticClass:"p"},
					  [_v("节点内容")]),_v(" "),_c('h3',[_v(_s(foo))])])}})
  • 通过VNode,vue可以对这棵抽象树进行创建节点、删除节点以及修改节点的操作,经过diff算法得出一些需要修改的最小单位,再更新视图,减少了dom操作,提高了性能。

二、为什么需要虚拟DOM

  • DOM其实是很慢的,哪怕一个最简单的div也包含着很多的属性。
  • 因此操作DOM的代价仍旧是昂贵的,频繁操作还是会出现页面卡顿,影响用户的体验。
  • 用传统的原生api或jQuery操作DOM时,浏览器会从构建DOM树开始从头到尾执行一遍流程。
  • 如:当要更新10个DOM节点时,浏览器收到第一个更新DOM请求后,并不知道后续还有9次更新操作,会马上执行流程,最终执行10次流程。通过VNode,同样更新10个DOM节点,虚拟DOM不会立即操作DOM,而是将这10次更新的diff内容保存到本地的一个js对象中,最终将这个js对象一次性attach到DOM树上,避免大量的无谓计算。
  • 虚拟DOM最大的优势在于抽象了原本的渲染过程,实现了跨平台的能力,不仅仅局限于浏览器的DOM,还可以是其他组件。

三、虚拟DOM介绍

回答:虚拟DOM是对真实DOM的一种抽象,会根据DOM标签的名字、属性、孩子对真实DOM进行映射。使用虚拟DOM的原因是,真实DOM其实是很慢的,一个简单的标签也包含了许多属性。同时真实DOM进行更新时的过程很笨拙,虚拟DOM使用diff算法,可以很轻便的进行DOM的操作。

到此这篇关于Vue虚拟DOM详细介绍的文章就介绍到这了,更多相关Vue虚拟DOM内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

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

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

Vue虚拟DOM详细介绍

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

下载Word文档

猜你喜欢

Vue虚拟DOM详细介绍

虚拟DOM的概念是通过状态生成一个虚拟节点树,然后使用虚拟节点树进行渲染。在渲染之前,会使用新生成的虚拟节点和上一次生成的虚拟节点进行对比,只渲染不同的部分
2022-11-13

JAVA虚拟机(JVM)详细介绍(七)——JVM优化

还以这个图为例,从.java到.class是编译过程,从.class到机器码是解释过程。下面对其进行分别优化。在优化过程中,对编译阶段的优化主要是对前端编译器的优化,在运行阶段的优化,主要是对即时编译器的优化。编译器优化编译过程以上为javac的编译过程图,以
JAVA虚拟机(JVM)详细介绍(七)——JVM优化
2017-09-20

JAVA虚拟机(JVM)详细介绍(一)——JVM概述

首先,对以上的四部分进行解释。(1)自动内存管理讲的是java运行时数据区里的部分,分为内存划分和垃圾收集器。(2)执行子系统讲的是画红圈的三部分:类文件结构、类加载机制、字节码执行引擎。(3)优化分别为编译期优化和运行期优化。(4)并发讲的是虚拟机是如何实现
JAVA虚拟机(JVM)详细介绍(一)——JVM概述
2016-06-30

JAVA虚拟机(JVM)详细介绍(八)——高效并发

内存模型内存模型是在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程抽象。其主要目标是定义程序中各个变量的访问规则。主内存和工作内存所有的变量都存储在主内存中,每条线程还有自己的工作内存,其工作内存中是被线程使用到的变量的主内存副本拷贝,线程对变量的
JAVA虚拟机(JVM)详细介绍(八)——高效并发
2017-08-31

JAVA虚拟机(JVM)详细介绍(五)——类加载机制

上篇中我们讲解了Class文件,这篇我们说说虚拟机是如何加载这些Class文件的?Class文件中的信息进入到虚拟机后会发生什么变化?这就涉及到了类加载机制。类加载机制是把类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚
JAVA虚拟机(JVM)详细介绍(五)——类加载机制
2015-12-28

JAVA虚拟机(JVM)详细介绍(四)——类文件结构

讲完了自动内存管理,我们来说说执行子系统。执行子系统讲解的是JVM如何执行程序。Class文件概述这篇我们只讲讲Class文件。Class文件又名类文件或字节码文件。javac将.java文件(源代码)编译成.class文件(字节码),jvm再将.class文
JAVA虚拟机(JVM)详细介绍(四)——类文件结构
2016-02-29

Vue响应式原理与虚拟DOM实现步骤详细讲解

在Vue中最重要、最核心的概念之一就是响应式系统。这个系统使得Vue能够自动追踪数据变化,并在数据发生变化时自动更新相关的DOM元素。本文将会探讨Vue响应式系统的实现原理及其底层实现
2023-05-13

JAVA虚拟机(JVM)详细介绍(三)——垃圾收集机制

在上一篇中我们说过,自动内存管理分为两部分:给对象分配内存和回收分配给对象的内存。这篇我们说说后者,即回收分配给对象的内存。回收内存要用到垃圾收集机制,英文名儿是GC(Garbage Collection)。在本部分我们要解决如下几个问题:1、哪些内存需要回收
JAVA虚拟机(JVM)详细介绍(三)——垃圾收集机制
2017-01-27

JAVA虚拟机(JVM)详细介绍(六)——字节码执行引擎

JVM中的执行引擎在执行java代码的时候,一般有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择。栈帧定义:栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它位于虚拟机栈里面。作用:每个方法从调用开始到执行完成的过程中,都
JAVA虚拟机(JVM)详细介绍(六)——字节码执行引擎
2014-07-03

阿里云 ECS 可以装虚拟机详细介绍及优势

本文将详细介绍如何使用阿里云ECS装载虚拟机,以及阿里云ECS的优势。阿里云ECS(ElasticComputeService)是一种弹性计算服务,提供了强大的计算能力,可以帮助您轻松实现大规模、高可用性的云计算。在本文中,我们将介绍如何使用阿里云ECS装载虚拟机,以及其优势和应用场景。正文:一、如何使用阿里云E
阿里云 ECS 可以装虚拟机详细介绍及优势
2023-11-10

Spring的Ioc模拟实现详细介绍

简单来说就是当自己需要一个对象的时候不需要自己手动去new一个,而是由其他容器来帮你提供;Spring里面就是IOC容器。例如:在Spring里面经常需要在Service这个装配一个Dao,一般是使用@Autowired注解:类似如下pub
2023-05-30

Android 模拟器的使用详细介绍

让我们一起学习一下模拟器的使用。本文内容如下:模拟器和真机的比较创建Android模拟器(emulator)运行Android模拟器设置简体中文语言界面模拟手机拨打电话和发送短信的功能源代码:本讲没有代码 1.模拟器和真机的比较androi
2022-06-06

编程热搜

目录