關於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中。每乙個階段都會有乙個鉤子...