基于Vue认识虚拟DOM(Virtual DOM)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Vue认识虚拟DOM(Virtual DOM)相关的知识,希望对你有一定的参考价值。

参考技术A        Virtual DOM这个概念相信大家不会太陌生,他产生的前提是浏览器中的DOM是很“昂贵”的,为了直观的感受,我们可以把一个简单的 div 元素属性都打印出来,如下图所示:

       可以看到Vue.js中的Virtual DOM还是稍微有点复杂的。因为他这里包含了很多Vue.js的特性。这里千万不要被这茫茫多的属性吓到,实际上Vue.js中Virtual DOM是借鉴了一个开源库 snabbdom 的实现,然后加入了一些Vue.js特色的东西。
       其实VNode是对真实DOM的一种抽象描述,它的核心定义为非就几个关键属性,标签名,数据,子节点,键值等,其他属性都是用来扩展VNode的灵活性以及实现一些特殊的 feature 的。由于VNode只是用来用来映射到真实DOM的渲染,不需要包含操作DOM的方法,因此它就非常轻量和简单。
       Virtual DOM除了它的数据结构的定义,映射到真实的DOM实际上要经历VNode的 create、diff 、patch 等过程。
       下面是vue.js从初始化到最终渲染的整个过程。假如你想阅读Vue源码,这张图应该能够帮到你。

以上是关于基于Vue认识虚拟DOM(Virtual DOM)的主要内容,如果未能解决你的问题,请参考以下文章

Part3-1-4 Vue.js Virtual DOM 的实现原理

虚拟DOM (virtual DOM)

Virtual DOM 和 Shadow DOM 有啥不同? [复制]

Vue Virtual Dom 和 Diff原理(面试必备) 极简版

VUEReact中虚拟DOM(virtual DOM)技术 VNode及diff算法介绍

如何理解vue,virtual DOM