通过js创建一个Object对象来模拟真实DOM结构,这个对象包含标签名 (tag)、属性 (attrs) 和子元素对象 (children) 三个属性,通过vue中的render()函数把虚拟dom编译成真实dom,在通过appendChild()添加到页面中。
创建虚拟DOM就是为了更好将虚拟的节点渲染到页面视图中,所以虚拟DOM对象的节点与真实DOM的属性一一照应
DOM是很慢的,其元素非常庞大,页面的性能问题,大部分都是由DOM操作引起的,真实的DOM节点,哪怕一个最简单的div也包含着很多属性,操作DOM的代价仍旧是昂贵的,频繁操作还是会出现页面卡顿,影响用户的体验,所以用虚拟Dom代替真实Dom