vue的生命週期的詳解

2021-10-24 09:37:20 字數 2097 閱讀 2697

一、vue例項的生命週期

生命週期鉤子=生命週期函式=生命週期事件

建立期間的生命週期函式

(1)beforecreate()

剛初始化了乙個vue空的例項化物件,這個物件身上只有預設的生命週期和預設的事件,其他東西都還沒有背建立。

在beforecreate生命週期函式執行的時候,data和methods中的資料都還沒有初始化

(2)created()

在created()中,data和methods都已經被初始化好了!

也就是說,如果要呼叫methods中的方法,或者操作data中的資料,最早只能在created()中操作

(3)beforemount()

beforemount執行的時候,模版已經在記憶體中編譯好了,但是還沒有掛載到頁面中去,此時頁面還是舊的

(4)mounted()

記憶體中的模版已經真實地掛載到了頁面中,使用者可以看到渲染好的頁面了

注意:mounted是例項建立期間最後乙個生命週期,當執行完mounted後,就表示例項已經被完全建立好了。此時,元件已經脫離了建立階段,進入執行階段。

此時,如果沒有其他操作的話,這個例項,就一直在記憶體中不動

如果要通過某些外掛程式操作頁面上的dom節點,最早要在mounted中進行

// beforecreate()

export

default},

methods:},

beforecreate()

,};<

/script>

created()

//created()

export

default},

methods:},

created()

,};<

/script>

//beforemount()

'text'

>

}<

/h3>

<

/div>

<

/template>

export

default},

methods:},

beforemount()

}},}

;<

/script>

//mounted()

'text'

>

}<

/h3>

<

/div>

<

/template>

export

default},

methods:},

beforemount()

,};<

/script>

執行期間的生命週期函式

注意:beforeupdate()和updated()這兩個事件,會根據data資料的改變,有選擇性的進行觸發,觸發0次到多次,當data資料改變時,才會觸發beforeupdate()

(1)beforeupdate()

當執行beforeupdate的時候,頁面中的顯示的資料,還是舊的,此時data中的資料是新的,頁面尚未和最新的資料同步

(2)updated()

當執行updated時候,頁面和data資料已經保持同步了,都是最新的

銷毀期間的生命週期函式

(1)beforedestory()

當執行beforedestory的時候,vue例項就已經從執行階段到了銷毀階段,此時例項上所有的data和methods以及過濾器等都處於可用的階段,此時還沒有真正執行銷毀過程

(2)destroyed()

當執行destroyed()的時候,元件已經完全被銷毀了,data和methods以及過濾器等都不可用了

附上vue官方生命週期圖:

VUE的生命週期詳解

1.beforecreate 建立前 在資料觀測和初始化事件還未開始 beforecreate function 2.created 建立後 完成資料觀測,屬性和方法的運算,初始化事件,el屬性還沒有顯示出來 created function 3.beforemount 載入前 在掛載開始之前被呼叫...

vue生命週期詳解

vue生命週期分為八個階段 建立前後 掛載前後 更新前後 銷毀前後 beforecreate和create鉤子函式間的生命週期 檢測資料,來檢測資料是否變化了,然後初始化事件 create和beforemount鉤子函式間的生命週期 首先判斷有沒有el選項 1.如果沒有的話就暫時停止了生命週期,等待...

vue生命週期詳解

最近在寫業務的時候,總是會遇到一些和vue的生命週期相關的問題,比如 你用ajax請求資料,然後將資料props到子元件的時候,因為ajax是非同步的,然後會發生沒有資料。然後查詢原因還是自己對這個東西理解不夠深入。什麼是生命週期函式?比如 mounted function 或者 mounted 複...