学习Vue的童鞋应该听过虚拟DOM树的概念吧,但是虚拟DOM树到底是什么东西呢?
由于js的运行速度是非常快的,大量的操作DOM就会很慢。时常在更新数据后会重新渲染页面,这样造成在没有改变数据的地方也重新渲染DOM节点,这样就造成很大程度的浪费。
利用在内存中生成与真实DOM相对应的数据结构,这个在内存中声明的结构称之为虚拟DOM;当数据发生变化时,能够智能的计算出重新渲染组件的最小代价并应用到DOM操作上
下面用一张图来说明虚拟DOM产生得过程:
image.png
过程:template是模板的意思,在浏览器编译以后会调用Render函数,这个函数的作用是:它可以把模板的里面的元素抽取出来就会形成Virtual DOM Tree(虚拟DOM树),这个虚拟DOM树在JavaScript中其实是一个个嵌套的对象,通过对虚拟DOM树的修改操作达到我们想要的结构(在这个过程中,我们对虚拟DOM的操作是这样的:通过和之前的DOM对比,只对不一样的部分进行渲染,相同的部分不变),最后会形成一个真实的DOM树,呈现在我们的浏览器中