1.什么是虚拟DOM
虚拟DOM只是一层对真实DOM的抽象,以JavaScript对象(VNode结点)作为基础的树,用对象的属性来描述节点,最终通过一系列的操作使这棵树映射到真实环境上
虚拟DOM表现为一个Object对象。对象至少包括标签名(tag)、属性(attrs)和子元素对象(children)三个属性
2.为什么需要虚拟DOM
因为操作一个真实DOM是非常慢的,因为其身上有大量的属性,直接操作,会造成性能问题
另外,有了虚拟DOM,就可以进行跨平台的开发,而不仅仅局限于浏览器的DOM,可以是安卓和IOS的原生组件,可以是小程序或GUI。有了diff算法,减少JS操作真实DOM带来的性能消耗。