虚拟dom

构思一下面试怎么回答这个问题。

为什么要使用虚拟dom

相对于操作真实dom更加方便(性能而言自然是操作真实的要好,因为那是命令式编程)

相比于innerHTML,虚拟dom在更新的时候比他性能更高(innerHTML需要销毁所有旧的dom

,再解析新的字符串,最后重新创建所有dom节点)

虚拟dom仅需要两层计算:用diff算法计算更新的节点,然后更新必要的dom就行了

总结:虚拟dom能够防止组件在重渲染时导致的性能恶化,

而且还能批量更新(收集多个更新操作然后一次性将这些更改应用到真实dom上)

减少不必要的dom操作,

跨平台