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...