Virtual Dom 并不是真正意义上的Dom,而是一个轻量级的JavaScript对象,一般是VNode类(VNode主要有5类:EmptyVNode、TextVNode、ElementVNode、ComponentVNode、CloneVNode)。
因为Virtual Dom是基于JavaScript计算,所以比Dom开销小很多,可以提升渲染(Render)性能。
在状态发生变化时,Virtual Dom会进行Diff运算,来更新只需要被替换的Dom,而没有全部重绘。具体的运行过程如下: