- 虚拟DOM是使用js对象来描述DOM,虚拟DOM的本质就是js对象,使用js对象来描述DOM的结构。应用的各种状态变化首先作用于虚拟DOM,最终映射到DOM
为什么要使用虚拟DOM
- 使用虚拟DOM,可以避免用户直接操作DOM,开发过程专注于业务代码的实现,不需要关注如何操作DOM,提高开发效率
- 作为一个中间层可以跨平台,web,SSR,Weex
- 在性能方面,首次渲染的时候肯定不如直接操作DOM,因为要维护一层额外的虚拟DOM,如果后续有频繁操作DOM的行为,这个时候可能会有性能的提升,虚拟DOM在更新真实DOM之前会通过diff算法对比新旧两个虚拟DOM树的差异,最终将差异更新到真实DOM中