(瀏覽器渲染引擎的渲染流程)javascript
關鍵渲染路徑是指瀏覽器從最初接收請求來的HTML、CSS、javascript等資源,而後解析、構建樹、渲染布局、繪製,最後呈現給客戶能看到的界面這整個過程。vue
因此瀏覽器的渲染過程主要包括如下幾步:java
虛擬DOM就是爲了解決瀏覽器性能問題而被設計出來的。假如像上面所說的,若一次操做中有10次更新DOM的動做,會生成一個新的虛擬DOM,將新的虛擬DOM和舊的進行比較,而後將10次更新的 diff 內容保存到一個JS對象中,最終經過這個JS對象來更新真實DOM,由此只進行了一次操做真實DOM,避免大量無謂的計算量。因此,虛擬DOM的做用是將多個DOM操做合併成一個,而且將DOM操做先所有反映在JS對象中(操做內存中的JS對象比操做DOM的速度要更快),再將最終的JS對象映射成真實的DOM,交由瀏覽器去繪製。算法
虛擬DOM就是是用JS對象來表明節點,每次渲染都會生成一個VNode。當數據發生改變時,生成一個新的的VNode,經過 diff 算法和上一次渲染時用的VNode進行對比,生成一個對象記錄差別,而後根據該對象來更新真實的DOM。本來要操做的DOM在vue這邊仍是要操做的,不過是統一計算出全部變化後統一更新一次DOM,進行瀏覽器DOM的一次性更新。瀏覽器
參考:https://baijiahao.baidu.com/s?id=1593097105869520145&wfr=spider&for=pc、https://www.jianshu.com/p/af0b398602bcide