爲什麼要使用虛擬DOM?

爲什麼要使用虛擬DOM

主要分爲兩個角度

1.DOM操作角度。假設狀態發生變化,我們如何將狀態的更新應用到視圖上?
直接創建元素,然後將元素覆蓋到我們需要更新的地方,這樣做固然很快捷,但是會引發頁面出現很大的變動,渲染引擎需要重新計算和渲染,這樣的開銷很大

更聰明的辦法是找出那些需要更新的節點,然後只更新那些發生變動的節點,這樣導致DOM操作減少,雖然會耗費一點時間用於計算哪些節點需要更新,但是這樣的時空置換是遠遠值得的

2.vue數據偵測角度,由於Vue1.0綁定狀態是頁面的中dom節點,如果綁定的節點過多,那麼在依賴收集和通知依賴造成的開銷,還有內存存儲造成的開銷是較大的

所以爲了減少這方面的開銷,vue2.0將依賴收集的粒度提升了,變成中粒度的組件,依賴收集和通知的基本單位變成了組件,大大的減少開銷了。

在組件級別中使用虛擬DOM,使用虛擬DOM的前提有兩點,首先要獲取到Vue組件的模板,模板就是寫的HTML代碼。

獲取模板的意義是爲了找出我們使用的狀態,但是模板不能直接使用,將要變成虛擬DOM能夠處理的單元,需要使用渲染函數,通過渲染函數變成虛擬DOM節點

生成的新的虛擬DOM節點和舊虛擬DOM節點進行patch運算,找出需要重新渲染的節點然後添加到視圖中去。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章