1). 虚拟DOM
什么是虚拟DOM?虚拟DOM(Virtual Dom),也就是我们常说的虚拟节点,是用JS对象来模拟真实DOM中的节点,该对象包含了真实DOM的结构及其属性,用于对比虚拟DOM和真实DOM的差异,从而进行局部渲染来达到优化性能的目的。
真实的元素节点:
1
2
3
<div id="wrap">
<p class="title">Hello world!</p>
</div>
VNode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{undefined
tag:'div',
attrs:{undefined
id:'wrap'
},
children:[
{undefined
tag:'p',
text:'Hello world!',
attrs:{undefined
class:'title',
}
}
]
}
为什么使用虚拟DOM?
简单了解虚拟DOM后,是不是有小伙伴会问:Vue和React框架中为什么会用到它呢?好问题!那来解决下小伙伴的疑问。
起初我们在使用JS/JQuery时,不可避免的会大量操作DOM,而DOM的变化又会引发回流或重绘,从而降低页面渲染性能。那么怎样来减少对DOM的操作呢?此时虚拟DOM应用而生,所以虚拟DOM出现的主要目的就是为了减少频繁操作DOM而引起回流重绘所引发的性能问题的!
虚拟DOM的作用是什么?
兼容性好。因为Vnode本质是JS对象,所以不管Node还是浏览器环