vue中created與mounted的區別

2021-09-26 03:47:07 字數 1261 閱讀 5804

關於vue.js中的生命週期,如果不是有特別的需求,一般在專案開發過程中更多的使用created和mounted,

所以在本文中主要講解created與mounted在開發中的主要使用區別。

版本資訊:

完整的生命週期圖示為了避免占用板塊,這裡就不貼出來了,大家可以自行前往vue生命週期檢視。

這裡是官方文件對生命週期api的解釋,大家可以看看

以下為測試vue部分生命函式
beforecreate(),

created(),

beforemount(),

mounted()

通過上述測試我們可以知道,

生命週期

是否獲取dom節點

是否可以獲取data

是否獲取methods

beforecreate否否

否created否是

是beforemount否是

是mounted是是

是以我的個人理解,vue生命週期實際上和瀏覽器渲染過程是掛鉤的,

在beforecreate階段,對瀏覽器來說,整個渲染流程尚未開始或者說準備開始,對vue來說,例項尚未被初始化,data observer和 event/watcher也還未被呼叫,在此階段,對data、methods或文件節點的呼叫現在無法得到正確的資料。

在created階段,對瀏覽器來說,渲染整個html文件時,dom節點、css規則樹與js檔案被解析後,但是沒有進入被瀏覽器render過程,上述資源是尚未掛載在頁面上,也就是在vue生命週期中對應的created

階段,例項已經被初始化,但是還沒有掛載至**$el**上,所以我們無法獲取到對應的節點,但是此時我們是可以獲取到vue中data與methods中的資料的

在beforecreate階段,實際上與created階段類似,節點尚未掛載,但是依舊可以獲取到data與methods中的資料。

在mounted階段,對瀏覽器來說,已經完成了dom與css規則樹的render,並完成對render tree進行了布局,而瀏覽器收到這一指令,呼叫渲染器的paint()在螢幕上顯示,而對於vue來說,在mounted階段,vue的template成功掛載在$el中,此時乙個完整的頁面已經能夠顯示在瀏覽器中,所以在這個階段,即可以呼叫節點了(關於這一點,在筆者測試中,在mounted方法中打斷點然後run,依舊能夠在瀏覽器中看到整體的頁面)。

vue中mounted和created的使用和區別

created 在模板渲染成html前呼叫,即通常初始化某些屬性值,然後再渲染成檢視。mounted 在模板渲染成html後呼叫,通常是初始化頁面完成後,再對html的dom節點進行一些需要的操作。通常created使用的次數多,而mounted通常是在一些外掛程式的使用或者元件的使用中進行操作,比...

vue中created和mounted的區別

beforecreate 建立之前 已經完成了初始化事件和生命週期 created 建立完成 已經完成了初始化的註冊和相應 beforemount 掛載之前 已經完成了模板的渲染 mounted 掛載之後 已經完成了html虛擬化,建立了el節點可以操作dom beforedestory 摧毀之前 ...

Vue高階(三十六) created 詳解

三 vue 生命週期 mounted 和 created 的區別 四 拓展閱讀 vue.js中created方法是乙個生命週期鉤子函式,乙個vue例項被生成後會呼叫這個函式。乙個vue例項被生成後還要繫結到某個html元素上,之後還要進行編譯,然後再插入到document中。每乙個階段都會有乙個鉤子...