Vue的生命週期與鉤子函式

2021-09-27 07:14:21 字數 1691 閱讀 2380

1,new vue() 第一步會先建立乙個vue例項

2,開始初始化事件,同使vue的生命週期就開始了

3,初始化資料,把data中所有的資料都通過object.defineproperty新增到vm身上

4,判斷vue的監管範圍,判斷是否指定了el屬性;

//如果指定了,el中的html就是它的監管範圍

//如果沒指定,等待vm.$mount(el)新增監管範圍

//如果一直沒有新增,那這個vue的生命週期就到此為止了

5,獲取需要解析的模板,判斷是否指定了template屬性

//如果指定了,那vue就將template的內容進行解析作為模板

//如果沒有指定,el對應的outerhtml就是需要解析的模板

6,根據資料和模板進行解析拼接,得到乙個解析後的結果將原來的el進行替換,在這個時候,我們才能看到真正渲染的資料

7,進入等待更新環節,等待data中的資料發生改變,一旦改變,就重新渲染,頁面的內容就得到了更新(一部是重複的)

8,如果呼叫vm.$destroy(),那麼vue例項就要被銷毀了,一旦銷毀,就算資料變了,頁面將不會發生改變

1,beforecreate(): 在建立vue例項,初始化事件後,就有這個鉤子函式了

//在這個鉤子函式中,雖然事件初始化了,但是資料還沒初始化,所以在這個鉤子函式中,是拿不到vm的資料的

//因為它的資料還沒通過object.defineproperty繫結到vm身上

2,created(): 在初始化資料後會進入這個鉤子函式,在這個鉤子函式中可以拿到vm身上的資料

3,beforemount(): 這個鉤子函式是在初始化模板之前的,在這個鉤子函式執行的時候,dom中的結構還是原始的

//也就是說在這裡的dom結構還是最原始的dom

console.log(div.innerhtml);// }

4,mounted(): 當進入該鉤子函式中,說明模板已經初始化好了

//此時,dom中的結構已經是成型了的模板

console.warn(div.innerhtml);// hello vue

5,beforeupdate(): 當例項身上的資料發生改變,將進入該鉤子函式

//vue例項身上的資料雖然已經發生改變,但是dom中的資料還未改變,

//在這個鉤子函式中如果拿dom內容,將會是老的內容

6,updated(): 執行該鉤子函式的時候,dom中的資料內容已經更新為最新的資料了

//在這個鉤子函式中,拿dom內容就會是最新的內容
7,beforedestory(): 當使用者手動調vm.$destort()方法是,這個例項就會進入到銷毀的環節,在這個鉤子函式中,vm例項還是可用的

8,destroyed()進入該鉤子函式中,vm身上的資料將與dom結構中的資料進行解綁,所以在這之後在修改vm的資料,dom將不再更新

vue生命週期,鉤子函式

一 vue生命週期簡介 咱們從上圖可以很明顯的看出現在vue2.0都包括了哪些生命週期的函式了,總結一下,對官方文件的那張圖簡化一下,就得到了這張圖。二 生命週期 對於執行順序和什麼時候執行,看上面圖基本有個了解了。下面我們將結合 去看看鉤子函式的執行。鉤子函式 1.create 和 mounted...

vue 生命週期(鉤子函式)

new vue 例項物件,下一步進入beforcreate 狀態 當使用new vue 建立物件之前,執行的事件 這裡可以做載入動畫 下一步,進入created 然後,他會檢測是否有el屬性,如果有在檢測template屬性型別,是一段渲染的函式還是一段html 然後就進入了beforemount狀...

vue生命週期鉤子函式

什麼是生命週期?vue中的生命週期指的是 元件 從建立到銷毀乙個過程,在這個過程中,我們在每乙個特定的階段會觸發一些方法 這些方法具備一些功能 我們給這些方法起了個名字叫做 生命週期鉤子函式 元件鉤子 為什麼要學習生命週期?因為我們想在生命週期鉤子中實現專案功能,那麼我們必須知道每乙個鉤子函式的具體...