vue2.0-vue實例的生命周期


 

Vue把整個生命周期划分為創建、掛載、更新、銷毀等階段,每個階段都會給一些“鈎子”讓我們來做一些我們想實現的動作。學習實例的生命周期,能幫助我們理解vue實例的運作機制,更好地合理利用各個鈎子來完成我們的業務代碼

先看一下官網的生命周期圖例:

如果覺的太復雜,那我們就從簡單的開始學起。

這就是生命周期的8個階段,其中我們將用到最多的鈎子就是:created(成功創建)階段。

下面我們就一 一來學習各個生命階段:

1. beforeCreate(創建之前)

此階段為實例初始化之后,此時的數據觀察和事件配置都沒好准備好。

 

 結果:

 

 data和el還是不可用。

2. Created(成功創建)

beforeCreate之后緊接着的鈎子就是創建完畢created,我們同樣打印一下數據data和掛載元素el,看會得到什么?

增加下述代碼:

 

 我們會發現,我們可以讀取數據data的值,但是DOM沒有生成,el的值還是沒有的。輸出$data為一個Object對象,而$el的值為undefined。

3. beforeMount(掛載之前)

上一個階段我們知道DOM還沒生成,屬性el還為undefined,那么,此階段為即將掛載,我們打印一下此時的$el是什么?

增加一下下面代碼:

結果:

 

 此時的$el不再是undefined,而是成功關聯到我們指定的dom節點<div id=”app”></div>,但此時{{ name }}還沒有被成功地渲染成我們data中的數據。沒事,我們接着往下看。

 

4.mounted(成功掛載)

 mounted也就是掛載完畢階段,到了這個階段,數據就會被成功渲染出來,我們編寫mounted的鈎子,打印$el 看看:

結果:

 

 如我們所願,此時打印屬性el,我們看到{{ name }}已經成功渲染成我們data.name的值

 

 5.beforeUpdate(更新之前)

 我們知道,當修改vue實例的data時,vue就會自動幫我們更新渲染視圖,在這個過程中,vue提供了beforeUpdate的鈎子給我們,在檢測到我們要修改數據的時候,更新渲染視圖之前就會觸發鈎子beforeUpdate。

在beforeUpdate階段,視圖並未重新渲染更新。

 

6.updated(成功更新)

此階段為更新渲染視圖之后,此時再讀取視圖上的內容,已經是最新的內容,視圖已經更新。

 

7.deforeDestroy(銷毀之前)

調用實例的destroy( )方法可以銷毀當前的組件,在銷毀前,會觸發beforeDestroy鈎子。

 

8.destroved(成功銷毀)

成功銷毀之后,會觸發destroyed鈎子,此時該實例與其他實例的關聯已經被清除,它與視圖之間也被解綁。

一旦效用實例的$destroy( )方法銷毀之后,實例與視圖的關系解綁,再修改name的值,已於事無補,視圖再也不會更新了,說明實例成功被銷毀了。

 

9. actived(激活階段)

keep-alive組件被激活的時候調用。

 

 

10. deactivated(停用階段)

keep-alive 組件停用時調用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM