- 虛擬DOM不會進行排版與重繪操作 虛擬DOM就是把真實DOM轉換為Javascript代碼
- 虛擬DOM進行頻繁修改,然后一次性比較並修改真實DOM中需要改的部分(注意!),最后並在真實DOM中進行排版與重繪,減少過多DOM節點排版與重繪損耗
- 真實DOM頻繁排版與重繪的效率是相當低的
- 虛擬DOM有效降低大面積(真實DOM節點)的重繪與排版,因為最終與真實DOM比較差異,可以只渲染局部(同2)
- 使用虛擬DOM的損耗計算:
總損耗 = 虛擬DOM增刪改 + (與Diff算法效率有關)真實DOM差異增刪改 + (較少的節點)排版與重繪
-
直接使用真實DOM的損耗計算:
總損耗 = 真實DOM完全增刪改 + (可能較多的節點)排版與重繪
總之,一切為了減弱頻繁的大面積重繪引發的性能問題,不同框架不一定需要虛擬DOM,關鍵看框架是否頻繁會引發大面積的DOM操作