亮神知识库 亮神知识库
首页
  • 手写代码

    • 手写代码系列
  • 基础知识

    • 基础
    • JS底层
    • CSS
  • 原理
  • 浏览器
  • HTTP
  • 网络安全
  • babel
  • webpack基础
  • webpack进阶
  • Vite
  • TypeScript
  • Vue2
  • Vue3
  • Node基础

    • glob
    • 模块化机制
    • 事件循环
    • KOA2框架原理
    • Node子进程
    • cluster原理(了解)
  • 教育行业2021

    • B端
    • C端
    • 工具
  • 游戏行业2025
  • 刷题
  • 杂(待整理)
  • 学习
  • 面试
  • 实用技巧
  • 心情杂货
  • 年度总结
  • 友情链接
关于
  • 分类
  • 标签
  • 归档
  • 收藏
GitHub (opens new window)

亮神

前程明亮,未来可期
首页
  • 手写代码

    • 手写代码系列
  • 基础知识

    • 基础
    • JS底层
    • CSS
  • 原理
  • 浏览器
  • HTTP
  • 网络安全
  • babel
  • webpack基础
  • webpack进阶
  • Vite
  • TypeScript
  • Vue2
  • Vue3
  • Node基础

    • glob
    • 模块化机制
    • 事件循环
    • KOA2框架原理
    • Node子进程
    • cluster原理(了解)
  • 教育行业2021

    • B端
    • C端
    • 工具
  • 游戏行业2025
  • 刷题
  • 杂(待整理)
  • 学习
  • 面试
  • 实用技巧
  • 心情杂货
  • 年度总结
  • 友情链接
关于
  • 分类
  • 标签
  • 归档
  • 收藏
GitHub (opens new window)
  • Vue2

    • 响应式

    • 模版编译

    • 虚拟DOM

      • 虚拟DOM
        • 说一下什么是Virtual DOM
        • Vue2.0引入虚拟 DOM 的目的是什么
      • diff算法
      • SSR
    • 整体流程

    • vuex&vue-router

  • Vue3

  • Vue原理
  • Vue2
  • 虚拟DOM
0zcl
2021-10-18
目录

虚拟DOM

# 说一下什么是Virtual DOM

Virtual DOM 是 DOM 节点在 JavaScript 中的一种抽象数据结构.

VNode有很多个属性,比较重要的属性有:tag、data、children和context

  • tag表示为元素标签的类型,例如:p、div或者ul等。
  • data表示节点上的数据,包括atts、style和class等。
  • children表示子节点列表,它是一个VNode实例数组。
  • context当前节点所处的编译作用域
<template>
  <div id="app" class="app-main">元素节点</div>
</template>
// div用vnode表示
const vnode = {
  tag: 'div',
  data: {
    attrs: {
      id: 'app'
    }
    class: 'app-main'
  },
  children: [VNode],
  context: vm
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# Vue2.0引入虚拟 DOM 的目的是什么

  • 解决频繁操作原生DOM产生的性能问题. 浏览器中操作DOM的代价比较昂贵,频繁操作DOM会产生性能问题, Vue 使用 <code>diff算法 </code>找出尽可能少的需要更新的真实DOM,从而达到提升性能的目的
  • 跨平台的能力. 虚拟 DOM 是 JavaScript 对象, 而 原生DOM 是和平台(web, h5)强相关. 虚拟 DOM 可以进行更方便地跨平台操作,例如服务器渲染
编辑 (opens new window)
上次更新: 2025/07/17, 07:17:44
keep-alive
diff算法

← keep-alive diff算法→

最近更新
01
2024年
07-20
02
2023年
07-20
03
2022年
07-20
更多文章>
Theme by Vdoing | Copyright © 2025-2025 亮神 | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式