虛擬 DOM 實現原理

2021-10-01 03:20:38 字數 409 閱讀 6207

為什麼要用?(好處是啥)

直接操作dom引發頁面重排重繪,頻繁操作會造成頻繁渲染,非常消耗效能;我們希望的是每次修改能夠只修改我們想要修改的dom而不是重新渲染所有的dom

而虛擬dom的思路是:(前提關鍵是:在虛擬dom樹上的操作不會渲染到檢視)

一、將dom樹轉換成js物件樹,產生第乙個虛擬dom樹(與真實dom樹一樣)

二、資料發生變化時(當你有增刪操作)產生第二個虛擬dom樹

三、diff演算法逐層比較兩個虛擬dom樹並標記增刪操作(不會渲染)

三、將標記出來的差異(虛擬節點)應用到真正的 dom 樹,而不是將整個虛擬dom樹覆蓋到真正的dom樹上

效能優化的體現:虛擬dom就是個草稿,最後實現的是將虛擬節點而不是整個虛擬dom渲染在檢視上,從而優化瀏覽器效能,減少dom操作,提高操作效率;

虛擬DOM原理簡述

1.為什麼需要虛擬dom js操作dom速度很慢,但是記憶體的速度很快 如何把dom結構用js物件表示出來,再用js物件一次性修改dom,成為了開發者的目標。2.什麼是虛擬dom 表示dom的js物件 var vdom velement div velement h1 virtual dom vel...

虛擬DOM實現流程

尚未使用虛擬dom 方案一 1 state資料 2 jsx模版 3,資料 模版結合,生成真實的dom,來顯示 4 state發生改變 5.資料 模版結合,生成真實的dom,替換原始的dom 缺陷 第一次生成了 個完整的dom片段 第二次生成了乙個完整的dom片段 第二次的d0m替換第一次的dom,非...

虛擬dom 虛擬 DOM 和 DOM diff

乙個能代表dom樹的物件,通常含有標籤名 標籤上的屬性 事件監聽和子元素及其它屬性。虛擬dom在vue和react中的示例 const rnode classname red 標籤上的屬性 onclick 事件 ref null,type div 標籤名 or 元件名 const vnode 事件 ...