vue生命週期流程

2021-09-27 06:26:46 字數 2198 閱讀 3169

new vue( ):啟動vue執行環境,建立環境中vue例項

init event & kifecycle:初始化vue的事件環境

init injections & reactivity:初始化vue例項的基本功能 1.引數寫入–資料(data),方法(methods),計算屬性(computed)…2.生成響應功能(資料劫持)

vue對應的div容器**如下:

鉤子函式 beforecreate( ) 和 created( ) 測試**如下:

var vm = new vue(,

methods:{},

computed:{},

beforecreate:function(),

created() ,

})

頁面測試結果如下:

建立當前vue例項對應的頁面容器

has 「el」 option:如果vue例項中沒有el屬性,流程進入no分支,通過vm.$mount()方法掛載例項

has 「template」 option:確定是否自定義頁面的模板結構

compile el』s outerhtml astemplate:template屬性不存在時,以定義vue時指定的el指向對應html結構作為模板編譯

compile template into render function:template屬性存在時,以定義的template的html結構作為模板編譯

create …with it:虛擬dom已構建完成,完成例項和虛擬dom的關聯,然後將關聯的容器替換到頁面的el位置

編譯模板(complie),生成虛擬dom

虛擬dom的優點:1.減少記憶體使用量,2.加快頁面中dom的渲染

diff為虛擬dom渲染演算法,通過比較修改前後的js物件變化,準確定位需要重新建立的dom

將虛擬dom提供給render函式建立記憶體dom等待呼叫(此時只是建立完成,並未載入到頁面)

鉤子函式beforemount( ) 和 mount( ) 測試**如下:

beforemount() ,

// 完成vue專案中初始化資料和功能的定義

mounted() ,

頁面測試結果如下:

這個階段可以無限迴圈,流程為順時針執行

when data changes:等待使用者對資料的操作

virtual dom re-render and patch:將虛擬dom重新渲染並在頁面完成替換

鉤子函式beforeupdate() 和 updated( ) 測試**如下:

beforeupdate() ,

updated() ,

頁面測試結果如下:

可使用vm.$nexttick( )方法,將執行函式體延遲到頁面dom更新完成後執行

when vm.$destroy( ) is called:手動銷毀結束程式執行

teardownwatchers…:關閉資料的監視和劫持操作,關閉事件監聽操作

vue學習滿一周隨筆 0.0

vue生命週期

beforecreate 元件例項剛剛被建立,屬性都沒有 create 例項已經建立完成,屬性已經繫結 beforemount 模板編譯之前 mounted 模板編譯之後 beforeupdate 元件更新之前 updated 元件更新完畢 beforedestroy 元件銷毀之前 destroye...

vue生命週期

vue把整個生命週期劃分為建立 掛載 更新 銷毀等階段,每個階段都會給一些 鉤子 讓我們來做一些我們想實現的動作。學習例項的生命週期,能幫助我們理解vue例項的運作機制,更好地合理利用各個鉤子來完成我們的業務 我們分別來看看這幾個階段 1.beforecreate 此階段為例項初始化之後,此時的資料...

Vue 生命週期

import vue from vue el root 沒有的話,使用render,繼續沒有,就把el的outerhtml編譯成模板 template temp data beforecreate created el是原來的el beforemount 渲染函式 render h this.tex...