Vue生命周期
主要分為四個階段:
(1)創(chuàng)建階段
新建vue實例:new vue()
讀取配置項重抖,加載生命周期方法
調(diào)用beforeCreate()
設(shè)置data,methods,computed..等配置項
(2)掛載階段
判斷是否擁有template配置項,有則傳入render函數(shù)梦染,編譯template,無則吧el對應(yīng)的outerHTML當(dāng)成template傳入render函數(shù)編譯
調(diào)用beforMount()
使用編譯后的結(jié)果替換el作用的dom
調(diào)用mount()
(3)更新階段
只有數(shù)據(jù)發(fā)生變化痘拆,并且dom使用了該數(shù)據(jù)革砸,dom才會更新,此時才執(zhí)行更新的生命周期方法绅这,更新前和更新后不是數(shù)據(jù)更新的狀態(tài)而是dom更新前后更新前與更新后
數(shù)據(jù)發(fā)生變化
調(diào)用beforeUpdate()
重新渲染dom
調(diào)用updated()
(4)銷毀階段
執(zhí)行vm.$destroy()銷毀實例
調(diào)用beforeDestroy()
實例移除data,methods,computed...
調(diào)用destroyed()
生命周期各個方法的作用:
beforeCreate() :初始化未開始涣达,正在及進(jìn)行數(shù)據(jù)觀測
created():初始化事件,$el屬性還未顯示
beforeMount():Data的數(shù)據(jù)和模板生成HTML
mounted():模板中的html渲染到html頁面中
beforeUpdate():更新狀態(tài)证薇,不觸發(fā)重新渲染
updated():組件Dom已經(jīng)更新
beforeDestroy:實例銷毀之前調(diào)用
destroyed:服務(wù)器渲染期間不會被調(diào)用