起初我們在使用JS/JQuery時,不可避免的會大量操作DOM,而DOM的變化又會引發回流或重繪,從而降低頁面渲染性能。那么怎樣來減少對DOM的操作呢?此時虛擬DOM應用而生,所以虛擬DOM出現的主要目的就是為了減少頻繁操作DOM而引起回流重繪所引發的性能問題的!
虛擬DOM(Virtual Dom),起始本質上就是一個JS對象,當數據發生變化時,我們不直接操作真實DOM,因為很昂貴,我們去操作這個JS對象,就不會觸發大量回流重繪操作,再加上diff算法,可以找到兩次虛擬DOM之間改變的部分,從而最小量的去一次性更新真實DOM,而不是頻繁操作DOM,性能得到了大大的提升。
虛擬DOM還有一個好處,可以渲染到 DOM 以外的平臺,實現 SSR、同構渲染這些高級特性,Weex 等框架應用的就是這一特性。