頻繁且複雜的dom操作通常是前端效能瓶頸的產生點,vue提供了虛擬dom的解決辦法
虛擬的dom的核心思想是:對複雜的文件dom結構,提供一種方便的工具,進行最小化地dom操作。這句話,也許過於抽象,卻基本概況了虛擬dom的設計思想
(1) 提供一種方便的工具,使得開發效率得到保證
(2) 保證最小化的dom操作,使得執行效率得到保證
也就是說,虛擬dom的框架/工具都是這麼做的:
根據虛擬dom樹最初渲染成真實dom
當資料變化,或者說是頁面需要重新渲染的時候,會重新生成乙個新的完整的虛擬dom
拿新的虛擬dom來和舊的虛擬dom做對比(使用diff演算法)。得到需要更新的地方之後,更新內容
這樣的話,就能大量減少真實dom的操作,提高效能
例子:
"content"
>
}<
/p>
="list-group"
>
<
/ul>
<
/div>
"myp"
>
1<
/div>
React 簡單的虛擬DOM理解
1 當元件的state或props發生改變,元件的render函式會重新執行一次 根據 state,得到資料 根據 jsx,得到模板 資料 模板 結合,通過react.createelement 生成虛擬dom js物件,用來描述真實的dom 會消耗效能,但代價低 div span one 用虛擬d...
虛擬DOM跟js操作dom的簡單區別
1.用html分析器,分析html元素,建立一顆dom樹 2.用css分析器,分析css樣式,生成頁面的樣式表 3.將樣式表和dom數關聯起來,構建成乙個render 渲染 樹,每乙個dom節點都有attach 固定 方法來接受各自的樣式,最後集中成一棵render 渲染 樹 4.有了render ...
虛擬dom 虛擬 DOM 和 DOM diff
乙個能代表dom樹的物件,通常含有標籤名 標籤上的屬性 事件監聽和子元素及其它屬性。虛擬dom在vue和react中的示例 const rnode classname red 標籤上的屬性 onclick 事件 ref null,type div 標籤名 or 元件名 const vnode 事件 ...