首頁  >  文章  >  web前端  >  如何理解vue中的生命週期(鉤子函數)

如何理解vue中的生命週期(鉤子函數)

清浅
清浅原創
2019-04-18 15:57:3839477瀏覽

Vue生命週期(鉤子函數)表示的是vue實例物件從開始創建到銷毀的過程。 Vue生命週期鉤子函數其實就是vue實例的選項,這些選項的值全部都是函數,代表了該實例從出生到死亡這一生當中的各階段,只要達到該階段就會自動觸發。

如何理解vue中的生命週期(鉤子函數)

【推薦課程:#Vue教學##】

Vue的生命週期指的是什麼?

Vue的生命週期通俗來講就是我們用Vue寫的網頁在瀏覽器運行起來之後,我們寫的程式碼要在記憶體裡執行。例如我們都會寫的

var vm = new Vue();,就是new出來了一個Vue 實例。這個實例從創建一直到我們關掉瀏覽器這個實例消亡,這一段時間裡,Vue這個框架乾了啥,Vue的實例做了啥,先做啥,後做啥,這一系列事情的關係是怎樣的,這就是Vue的生命週期。

Vue的生命週期分三個階段:創建階段,運行階段,銷毀階段。

在圖中,我對生命週期各個部分進行了標註並做了一些必要的解釋。

如何理解vue中的生命週期(鉤子函數)

流程解釋(12步驟對應圖中操作):

1、產生一個Vue實例,執行鉤子函數beforeCreate( )。 【實例創建前】

2、對實例進行初始化。

3、把實例成員掛載到view model身上,執行鉤子函數created()。 【實例創建後】

4、判斷有無el物件【el物件用來指明我們控制的視圖是那一區域】。

5、如果有el對象,判斷是否使用了模板。

6、如果使用了模板,就按照編譯模板的方法去做,如果沒有則把el控制的視圖區域當作模板來渲染。執行鉤子函數beforeMount()。 【實例掛載前】

7、把經過更改的新的el視圖區域,替換掉原來的el視圖區域。執行鉤子函數Mounted()【實例掛載後】。

8、進入運行階段,運行階段就是進行一些操作了,執行鉤子函數beforeUpdate()。 【資料更新前】

9、操作完畢之後,把這些資料渲染到頁面上,執行鉤子函數updated()。 【資料更新後】

10、進入銷毀階段,執行鉤子函數beforeDestroy()【實例銷毀前】

11、進行銷毀,拆卸監視器、子元件和事件偵聽器。

12、銷毀完成,執行鉤子函數destroyed()。 【實例銷毀後】

  • 生命週期中的鉤子函數是Vue在它生命週期中必須要執行到的事件,這些事件其實就是函數。

  • 當然這些事件是允許我們程式設計師來寫程式碼的,以此當Vue的生命週期走到這裡時,來進行我們想要的操作。

  • 一個實例在創建階段和銷毀階段的六個鉤子函數是永遠執行一次的。執行過去了,就不會再執行了。

在圖中提到:在Vue的生命週期執行完init Events之後我們才能存取我們定義的實例成員,而這個點也是最早可以存取到實例成員的點,為了驗證這個,我們來看一段程式碼。


    
//这里的路径为本机上的vue.js路径

結果如圖:

如何理解vue中的生命週期(鉤子函數)

可以看到在beforeCreate()的時候,我們輸出的是undefined,而在 created()後就輸出了msg的值。

這說明在Vue的實例成員是在created之後,才掛載到了我們的vm身上,所以在created之後再訪問就能訪問到我們的實例成員了。

以上是如何理解vue中的生命週期(鉤子函數)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn