虚拟 dom 是解决框架的性能问题,例如 react 创建元素会调用 createElement(17之后是jsx)如果不引入虚拟 dom,那么数据更新响应到视图,需要重新调用所有函数,操作很费时,而有了虚拟 dom 只需要使用 diff 算法遍历一遍 js 对象,找出变化的节点即可(现在也有不依赖虚拟 dom 的框架,主要是编译期做到数据与 ui 的关联,这一点传统框架很难实现)。另外一点就是,虚拟 dom 可以实现跨平台应用,例如 jsdom 以及 app原生组件