vue源码阅读之什么是虚拟dom

这篇具有很好参考价值的文章主要介绍了vue源码阅读之什么是虚拟dom。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前面简单说过数据响应式原理,大体是个怎么流程,数据发生变化,我们界面如何更新。

依赖收集收集的是watcher,然后当数据发生变化的时候dep通知watcher,然后watcher负责updateComponent。

那么更新组件过程中,有个很重要的概念叫做虚拟dom。

什么是虚拟dom

所谓虚拟dom,就是用一个js对象来描述一个dom节点,比如下面这个示例:

vue源码阅读之什么是虚拟dom,vue.js,javascript,前端
长这个样子,是一个对象来描述一个dom节点。比如这个tab是div,是表示元素的标签,text属性是他的文本内容,children是他的子元素列表。

还有它的data属性,key属性,parent属性,你能想到的dom节点的所有属性都有表示。

然后我们展开他的children属性。
vue源码阅读之什么是虚拟dom,vue.js,javascript,前端
也是同样的结构,描述这个节点下面有多少节点,顺序排列,这样就可以描述整个页面元素。

这个用js对象表示的dom节点就叫做虚拟dom。

为什么要有虚拟dom

我们知道,vue是数据驱动视图的,数据发生变化,视图就要随之更新,在更新视图的时候难免要操作dom。而操作真实的dom又是非常耗费性能的。

因为浏览器把dom设计的非常复杂,一个真实的dom元素非常庞大的。比如:

let div = document.createElement('div');
let str = '';
for (const key in div) {
    str += key + ',';
}
console.log(str);

我们打印一下这个div元素上有多少属性。

vue源码阅读之什么是虚拟dom,vue.js,javascript,前端
这是打印出来的结果,非常的大。这个还是一个简单的空标签,如果是更加复杂,嵌套更深的会更加大,所以说直接操作真是dom是非常耗费性能的。

所以我们用js来表示dom元素,利用js的计算性能来换取操作dom所消耗的性能。

这个就是虚拟dom产生的原因。文章来源地址https://www.toymoban.com/news/detail-540379.html

到了这里,关于vue源码阅读之什么是虚拟dom的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是虚拟DOM

    真实DOM和虚拟DOM的区别 虚拟DOM是当下两个主流框架vue和react使用到的技术,它到底有什么优缺点可以让两大主流框架所青睐呢? 在了解虚拟DOM之前,我们先了解什么是DOM     DOM(Document Object Model——文档对象模型)是用来呈现以及与任意 HTML 或 XML文档交互的API。DOM 是载入到

    2024年02月08日
    浏览(43)
  • 什么是虚拟DOM(Virtual DOM)?它在前端框架中的作用是什么?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月07日
    浏览(46)
  • 为什么要用虚拟 DOM?

    虚拟DOM(Virtual DOM)是一种将应用程序的状态(state)与DOM分离的技术。它是一个JavaScript对象,它的结构类似于实际DOM元素的结构。使用虚拟DOM的目的是在减少DOM操作的数量的同时,提高应用程序的性能和响应速度。 当应用程序的状态发生变化时,使用虚拟DOM可以计算出需要

    2024年02月01日
    浏览(44)
  • 〖大前端 - 基础入门三大核心之JS篇㉟〗- JavaScript 的DOM简介

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超

    2024年02月04日
    浏览(53)
  • vuejs源码之虚拟dom中的vnode

    在虚拟dom中,vnode是比较重要的。 在vuejs中,有一个Vnode类 使用它可以实例不同类型的vnode实例,而不同类型的vnode实例各自表示不同类型的dom元素。 例如dom元素有文本节点,元素节点,注释节点等。 这是vnode的构造函数。他其实是一个js节点描述对象。描述了怎么样去创建真

    2024年02月16日
    浏览(36)
  • vue的虚拟DOM

    虚拟DOM就是一个JS对象,用它来描述真实DOM demo1: 多次执行dom操作 demo2: 只执行一次dom操作 比较运行时间:得到结论 越多的真实dom操作,越损耗性能 操作数据要大大的减少性能损耗,提高渲染效率 第一种更新DOM的方案 第二种更新DOM的方案 第三种使用虚拟DOM的方案 key是虚拟

    2024年02月09日
    浏览(38)
  • Vue 虚拟DOM

    在当今Web开发领域中,构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架,正是为了满足这些需求而诞生。它采用了MVVM架构模式,并通过数据驱动和组件化的方式,使我们能够更轻松地构建出优雅而高效的Web应用程序。

    2024年02月22日
    浏览(36)
  • Vue面试之虚拟DOM

        最近在整理一些前端面试中经常被问到的问题,分为vue相关、react相关、js相关、react相关等等专题,可持续关注后续内容,会不断进行整理~     虚拟 DOM 是用 JavaScript 对象来模拟实际 DOM 结构的一种抽象表示。它描述了组件的结构、属性和事件等信息,但与实际的页面

    2024年01月21日
    浏览(37)
  • vue中的虚拟dom

    DOM操作是Web开发中非常昂贵和低效的操作,尤其是在用户界面频繁更新的情况下。此时,在每次数据更新时重新渲染整个DOM树会导致应用程序性能下降。 为了解决这个问题,虚拟DOM被引入到前端开发中。虚拟DOM把整个DOM树抽象成一个JS对象,这样开发者就可以直接操作JS对象

    2024年02月09日
    浏览(38)
  • vue 虚拟DOM的优劣说明

    Vue.js 使用虚拟 DOM(Virtual DOM)来提高应用的性能。虚拟 DOM 是一种编程概念,它通过在内存中创建一个与真实 DOM 结构相同的虚拟结构,来优化对真实 DOM 的操作。下面是对 Vue.js 中虚拟 DOM 的优劣说明和代码示例。 优势: 性能优化 :Vue.js 通过虚拟 DOM 减少了直接操作真实

    2024年01月25日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包