参考
为什么需要虚拟DOM
虚拟DOM减少了对DOM树的操作,如何减少?
通过batching和diff。batching批处理用于将所有的操作一次性交给DOM,diff则通过算法,比较前后差异进行DOM操作,有效降低DOM操作次数,以及操作范围。
React渲染代价
假设一个场景,有一个列表,现在要重新渲染它,并且渲染的数据与之前一模一样。
MVVM会如何做?
MVVM监测数据的更新是在数据层的。
由于数据是 “全新” 的,MVVM 实际上需要销毁之前的所有实例,重新创建所有实例,最后再进行一次渲染!
而React呢?
React监测数据更新是在DOM层的。
即使是全新的数据,只要最后渲染结果没变,那么就不需要做无用功。