virtual-dom(简称vdom)的概念大规模的推广得益于react的出现,virtual-dom也是react这个框架非常重要的特征之一,这也是react运行的比较快的原因,因为操作的都是vdom,并不是直接操作dom。

1,innerHTML和vdom的比较
innerHTML:render html字符串 + 重新创建所有dom元素
vdom: render vdom + diff + 更新必要的dom元素

2,vdom的原理
vdom是在DOM的基础上建立了一个抽象层,当数据和状态发生变化的时候,都会自动更新vdom,然后将新的vdom与旧的vdom进行对比,找到变更的部分,得出一个diff,然后将diff放在一个队列里,最终批量更新这些diff到dom中。vdom完全是用js实现的,和宿主浏览器没有任何关系,将原本需要在真实dom进行的创建节点,删除节点,添加节点等一系列复杂的dom操作全部放到vdom里面进行,最终表现在dom上的修改就只是变更了部分,大大提高了性能