虛擬DOM同樣也是操作DOM,為啥說它快?
虛擬DOM同樣也是操作DOM,為啥說它快?
呼啦一陣風(fēng)
2018-12-20 18:14:33
TA貢獻(xiàn)1906條經(jīng)驗 獲得超10個贊
你的知道瀏覽器的虛擬DOM與真實DOM的區(qū)別(注意:需不需要虛擬DOM,其實與框架的DOM操作機(jī)制有關(guān)):
虛擬DOM不會進(jìn)行排版與重繪操作
虛擬DOM進(jìn)行頻繁修改,然后一次性比較并修改真實DOM中需要改的部分(注意?。?,最后并在真實DOM中進(jìn)行排版與重繪,減少過多DOM節(jié)點排版與重繪損耗
真實DOM頻繁排版與重繪的效率是相當(dāng)?shù)偷?/p>
虛擬DOM有效降低大面積(真實DOM節(jié)點)的重繪與排版,因為最終與真實DOM比較差異,可以只渲染局部(同2)
使用虛擬DOM的損耗計算:
總損耗 = 虛擬DOM增刪改 + (與Diff算法效率有關(guān))真實DOM差異增刪改 + (較少的節(jié)點)排版與重繪
直接使用真實DOM的損耗計算:
總損耗 = 真實DOM完全增刪改 + (可能較多的節(jié)點)排版與重繪
總之,一切為了減弱頻繁的大面積重繪引發(fā)的性能問題,不同框架不一定需要虛擬DOM,關(guān)鍵看框架是否頻繁會引發(fā)大面積的DOM操作
舉報