今天我們來深入了解一下Vue的頁面加載機制,Vue的頁面加載可以分為五個階段,分別是創建Vue實例、編譯模板、掛載實例到DOM、渲染頁面和更新頁面。
// 創建Vue實例 var vm = new Vue({ el: '#app', data: { message: 'Hello world' } })
創建Vue實例是Vue頁面加載的第一個階段,通過new Vue()來創建Vue實例,參數是一個選項對象,主要包括el、data、methods、computed、watch等。其中el指定Vue實例掛載的元素,data包括了Vue實例中需要響應的數據。
// 編譯模板{{message}}
// 編譯后{{message}}
編譯模板是Vue頁面加載的第二個階段,Vue會將模板編譯成渲染函數,對每個指令和插值表達式生成對應的更新函數,從而實現響應式更新。
// 掛載實例到DOM// 編譯后{{message}}
{{message}}
掛載實例到DOM是Vue頁面加載的第三個階段,Vue將編譯后的渲染函數掛載到Vue實例的$mount方法上,當渲染函數被執行時,會將生成的虛擬DOM轉化成真實DOM并插入到指定的el元素中。
// 渲染頁面Hello world
渲染頁面是Vue頁面加載的第四個階段,Vue在渲染頁面時會對數據進行依賴追蹤,當數據發生變化時會重新執行渲染函數,生成新的虛擬DOM并對比差異,只更新發生變化的部分,從而提高頁面的性能。
// 更新頁面 vm.message = 'Hello Vue'
更新頁面是Vue頁面加載的第五個階段,Vue在數據變化時會觸發響應式更新,重新執行渲染函數并更新虛擬DOM,最終將差異部分渲染到頁面上。