虛擬dom是最先由facebook在react裡使用的,
虛擬dom是乙個特別棒的概念,我們都知道,在瀏覽器上進行dom操作的時候,會特別的消耗效能而且響應、渲染特別慢,但是有了虛擬dom就不一樣了,
虛擬dom就是將dom樹轉換成乙個js物件樹,
虛擬dom就是將上述的標籤寫成乙個js物件樹,如下
當dom改變的時候,他會使用diff演算法將改變以後的js物件樹與原先的js物件樹進行比較,這個比較是逐層比較的,當發現節點刪除就刪除,增加就增加,
但是由於他是一級一級進行比較的,這樣就會有乙個致命的缺點:假設在根元素上又巢狀了乙個元素,那麼diff演算法在比較第一層的時候就認為改變了,就相當於重新建立了乙個js物件樹,這樣效率還是不高,
此外,還有乙個致命的缺點就是;如果同一級上有特別多個相同的元素,在增加或者排序的時候,就會在迴圈比較的時候浪費掉大量的效能
於是,為了解決這兩個缺點,虛擬dom做了兩個假設,並且這兩個假設也實現了,所以已經解決了這兩個缺點
兩個假設:
1、兩個相同的元件產生類似的dom結構,不同的dom節點產生不同的dom節點
2、對於同乙個層次的一組節點,他們可以通過唯一的id進行區分
對於第二種假設,就是解釋了我們為什麼要在vue的v-for裡面必須加乙個key 並且這個key要是唯一的
如果本文對您有幫助,請抬抬您的小手,點下右下角的推薦, ^-^,當然如果看了這篇部落格對您有幫助是我最開心的事,畢竟贈人玫瑰,手有餘香, ^-^,如果這篇部落格沒有幫助到您,那就只能說一聲抱歉啦
虛擬dom的具體理解
下面來說下,我理解的虛擬dom 背景 我們知道在jquery時代,都是直接操作dom的,你需要在適當的時機以正確的順序來制定要更改的元素,相當於我們自己要時時刻刻看著dom,然後告訴它你頭要怎麼放,手要擺怎麼樣的姿勢。所以問題來了,你為什麼不一次性告訴dom你想要的結果呢?而且另外乙個常識問題就是操...
對虛擬DOM的理解
什麼是虛擬dom 簡單來說虛擬dom就是用js來模擬dom結構。相對於瀏覽器渲染出來的真是dom。1.記憶體中生成一顆虛擬dom樹 var vdom children 上面就是乙個簡單的虛擬dom,可以將記憶體裡的虛擬dom渲染成真實dom 虛擬dom的作用 當用傳統的api或jquery去操作do...
如何理解虛擬DOM
看了知乎各位大神對於虛擬dom的解釋,我也是得出了一些比較淺顯的感受 虛擬dom virtual dom並沒有完全實現dom,virtual dom最主要的還是保留了element之間的層次關係和一些基本屬性。我認為虛擬dom就是把dom樹做了乙個 dom 資料 對映成虛擬dom,這個對映的效率比操...