參考
爲什麼需要虛擬DOM
虛擬DOM減少了對DOM樹的操作,如何減少?
通過batching和diff。batching批處理用於將所有的操作一次性交給DOM,diff則通過算法,比較前後差異進行DOM操作,有效降低DOM操作次數,以及操作範圍。
React渲染代價
假設一個場景,有一個列表,現在要重新渲染它,並且渲染的數據與之前一模一樣。
MVVM會如何做?
MVVM監測數據的更新是在數據層的。
由於數據是 “全新” 的,MVVM 實際上需要銷燬之前的所有實例,重新創建所有實例,最後再進行一次渲染!
而React呢?
React監測數據更新是在DOM層的。
即使是全新的數據,只要最後渲染結果沒變,那麼就不需要做無用功。