vuejs源码之虚拟dom中的vnode

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

在虚拟dom中,vnode是比较重要的。

什么是vnode

在vuejs中,有一个Vnode类

vuejs源码之虚拟dom中的vnode,vue.js,javascript,前端

使用它可以实例不同类型的vnode实例,而不同类型的vnode实例各自表示不同类型的dom元素。

例如dom元素有文本节点,元素节点,注释节点等。

constructor(
    tag?: string,
    data?: VNodeData,
    children?: Array<VNode> | null,
    text?: string,
    elm?: Node,
    context?: Component,
    componentOptions?: VNodeComponentOptions,
    asyncFactory?: Function
  ) {
    this.tag = tag
    this.data = data
    this.children = children
    this.text = text
    。。。
  }

这是vnode的构造函数。他其实是一个js节点描述对象。描述了怎么样去创建真实的dom节点。

比如tag是表示一个元素节点的名称,text表示文本节点,children表示子节点。

vnode的作用

由于每次渲染视图都要先创建vnode,然后使用它创建真实dom,所以可以将上一次渲染创建的vnode缓存起来。之后每次需要重新渲染,将上一次缓存的和新创建的做对比,查看他们有哪些地方不一样,然后基于此修改dom。

vuejs目前当状态发生变化,通知到组件级别,然后组件内部使用虚拟dom来渲染视图。

也就是组件使用的状态有一个发生变化,那么整个组件就要重新渲染。

所以vnode做diff更新,只更新变化的节点就很重要。

vnode的类型

vnode的类型有以下几种:

  • 注释节点
  • 文本节点
  • 元素节点
  • 组件节点
  • 函数式节点
  • 克隆节点

patch

patch就是patching算法,将vnode渲染成真实dom。
通过它来对比新旧两个vnode有什么不同,然后根据对比结果找到需要更新的节点进行更新。

使用patching算法计算真正需要更新的节点,最大限度减少dom操作,从而显著提升性能。文章来源地址https://www.toymoban.com/news/detail-598924.html

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

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

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

相关文章

  • javaScript:DOM中的CSS操作

      目录 1.style 属性获取元素写在行间的样式 2.getComputedStyle(元素对象,null)可以获取元素的非行间样式  3.案例(定义一个div和按钮,每点击一次按钮div宽度增加) 效果预览图 代码实现            在 JavaScript 中,可以通过 DOM(文档对象模型)操作来访问和修改网页上的 CS

    2024年02月09日
    浏览(27)
  • 一文吃透JavaScript中的DOM知识及用法

       DOM : D ocument O bject M odel(文档对象模型),定义了用户操作文档对象的接口,可以说DOM是自HTML将网上相关文档连接起来后最伟大的创新。它使得用户对HTML有了空前的访问能力,并使开发者将HTML作为XML文档来处理。 本文知识导图如下:    DOM是网页的核心结构,无论是

    2023年04月08日
    浏览(36)
  • 探索JavaScript事件流:DOM中的神奇旅程

     🎬 江城开朗的豌豆 :个人主页  🔥 个人专栏  :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 引言 1. 事件流的发展流程 1.1 传统的DOM0级事件 1.2 DOM2级事件和addEventListener方法 1.3 W3C DOM3级事件 1.4 React与Virtual DOM 2. 事件流的属性 2.1 事件捕获阶段

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

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

    2024年02月04日
    浏览(42)
  • Vue 虚拟DOM

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

    2024年02月22日
    浏览(30)
  • vue的虚拟DOM

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

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

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

    2024年01月21日
    浏览(28)
  • 什么是 VUE的虚拟 DOM?

    虚拟 DOM(Virtual DOM)是一个在内存中以 JavaScript 对象的形式表示的轻量级的 DOM 抽象层。当页面的状态发生改变时,Vue 3 会生成新的虚拟 DOM,并通过与上一次生成的虚拟 DOM 进行比较,找出实际发生了变化的部分。然后,Vue 3 仅对这些变化的部分进行实际 DOM 操作,而不是对整

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

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

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

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

    2024年02月07日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包