Virtual DOM 算法:
- 用 JavaScript 對(duì)象結(jié)構(gòu)表示 DOM 樹的結(jié)構(gòu)身堡;然后用這個(gè)樹構(gòu)建一個(gè)真正的 DOM 樹到推,插到文檔當(dāng)中
- 當(dāng)狀態(tài)變更的時(shí)候眷昆,重新構(gòu)造一棵新的對(duì)象樹匣距。然后用新的樹和舊的樹進(jìn)行比較疏旨,記錄兩棵樹差異
- 把2所記錄的差異應(yīng)用到步驟1所構(gòu)建的真正的DOM樹上失受,視圖就更新了
Virtual DOM 本質(zhì)上就是在 JS 和 DOM 之間做了一個(gè)緩存讶泰。可以類比 CPU 和硬盤拂到,既然硬盤這么慢痪署,我們就在它們之間加個(gè)緩存:既然 DOM 這么慢,我們就在它們 JS 和 DOM 之間加個(gè)緩存兄旬。CPU(JS)只操作內(nèi)存(Virtual DOM)狼犯,最后的時(shí)候再把變更寫入硬盤(DOM)。
還需要了解的知識(shí):
- 算法復(fù)雜度
- 二叉樹的遍歷
3.文本比較算法和最小編輯距離
https://github.com/livoras/blog/issues/13