1、虚拟DOM是什么?
虚拟DOM是相对于浏览器所渲染出来的真实 DOM ,最先是由“facebook团队”提出的,最先运用在react中,之后在vue2.0版本中引入了虚拟DOM的概念;
之前我们改变更新页面,只能通过首先查找dom对象,再进行修改dom的方式来达到目的。 但这种方式相当消耗计算资源, 因为每次查询 dom ,都需要遍历整颗 dom 树。
现在,我们用对象的方式来描述真实的 dom,并且通过对象与真实dom建立了一一对应的关系,那么每次 dom 的更改,我通过找到相应对象,也就找到了相应的dom节点,再对其进行更新。这样的话,就能节省性能,因为js 对象的查询,比对整个dom 树的查询,所消耗的性能要少。
优点:
- 降低浏览器性能消耗
- diff算法,减少回流和重绘
- 跨平台
缺点:
- 首次显示要慢些
- 无法进行极致优化