vue之虛擬dom的認(rèn)識(shí)與理解

前沿


  • 虛擬dom這個(gè)東東其實(shí)我之前也不知道,之前一直以為是因?yàn)関ue等的這些mvvm框架就是因?yàn)閿?shù)據(jù)驅(qū)動(dòng)頁(yè)面,減少了大量的dom操作,所以才會(huì)性能更好。
  • 知道又一次去面試,面試官問到知道為什么vue等的這些mvvm框架比傳統(tǒng)的操作dom渲染頁(yè)面要快么?我回答的就是第一條,他說不全是,不過最后還是跟我說了,回去了解一下虛擬dom
  • 所以才回去就趕緊看了看,現(xiàn)在有空,趕緊整理出來
  • 如果后期能理解更深,會(huì)持續(xù)更新的。

我也是了解之后才發(fā)現(xiàn)vue官網(wǎng)中有提出虛擬dom的概念,只不過是自己沒有當(dāng)回事罷了。

什么是虛擬dom

  • 文檔對(duì)象模型或DOM定義了一個(gè)接口,該接口允許JavaScript之類的語言訪問和操作HTML文檔。元素由樹中的節(jié)點(diǎn)
    表示,并且接口允許我們操縱它們。但是此接口需要付出代價(jià),大量非常頻繁的DOM操作會(huì)使頁(yè)面速度變慢

  • 每個(gè)元素都是一個(gè)節(jié)點(diǎn),每段文字也是一個(gè)節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)就是頁(yè)面的額一部分,就像家譜一樣,每個(gè)節(jié)點(diǎn)都有孩子節(jié)點(diǎn)。

  • 虛擬dom就是為了解決操作真是dom帶來的性能問題而出現(xiàn)的,所以說,

  • 虛擬dom就是用js對(duì)象模擬真實(shí)的dom節(jié)點(diǎn),也就是將所有的更新dom的操作先全部反映在js對(duì)象上(虛擬dom上)

  • 操作內(nèi)存中的js對(duì)象顯然速度要快很多,等更新完成后,再將最終的js對(duì)象映射到真是的dom上,交由瀏覽器去繪制頁(yè)面。

  • 上邊所說的js對(duì)象模擬真實(shí)的dom節(jié)點(diǎn)也就是官網(wǎng)中所說的(虛擬節(jié)點(diǎn)VNode.)
    看看官網(wǎng)怎么說


    vdom.png
  • 也就是這個(gè)原理大大提高了渲染速度。

可能還有理解不到位的地方,后期在慢慢更新。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容