beforecreate
元件建立前觸發,目的是為了元件的生命週期 和 元件中的事件做準備
資料沒有獲得,真實dom也沒有渲染出來
可以進行資料請求,提供了一次資料修改的機會
執行一次
created
元件建立結束
資料得到了,真實dom沒有渲染出來
可以進行資料請求,提供了一次資料修改的機會
執行了一次
beforemount
6. 元件掛載前
7. 任務: 判斷el 判斷 template
如果el沒有,那麼我們需要手動掛載,如果有,那麼判斷template
如果template有,那麼進行render函式
如果template沒有,那麼通過 outerhtml 手動書寫模板
8. 資料可以獲得,但是真實dom還沒有渲染
9. 可以進行資料請求,也提供了一次資料修改的機會
10. 執行一次
mounted
11. 元件掛載結束
12. 資料獲得了,真實dom也獲得了
13. 可以進行資料請求,也就可以修改資料
14. 執行了一次
15. 可以進行真實dom的操作了( 可以進行第三方庫的例項化了 )
綜上總結:
1. 資料請求一般寫在created裡面
2. 第三方庫例項化我們一般會往mounted中寫
第三方庫的例項化要求,必須真實dom已經存在
觸發條件:資料更新beforeupdate1. 更新前
2. 重新渲染 vdom , 然後通過diff演算法比較兩次vdom,生成patch 補丁物件
3. 這個鉤子函式更多的是內部進行一些操作,我們就不在多干預了
4. 可以觸發多次
updated
更新結束
真實dom得到了,資料也得到了( 更新後的 )
動態資料獲取( 第三方庫例項化 )
總結:
第三方動態資料請求一般放在updated,然後進行第三方庫例項化的優化
1.理由: 將動態資料的第三方庫例項化放在updated中是有弊端的,弊端是第三方庫會重複例項化
2.解決:
將例項化放到非同步佇列中去
將例項化放在created的資料請求中,然後放在settimeout中
vue提供了乙個它認為是最好的方案: **nexttick**
使用: vue.nexttick this.$nexttick
nexttick表示元件渲染結束之後這個方法才會呼叫
觸發條件:當元件銷毀時beforedestroy銷毀前destroy銷毀完成
這兩個鉤子功能一致
通過呼叫 $destroy 方法 - 內部銷毀
vue.js官網上的生命週期:
vue生命週期
beforecreate 元件例項剛剛被建立,屬性都沒有 create 例項已經建立完成,屬性已經繫結 beforemount 模板編譯之前 mounted 模板編譯之後 beforeupdate 元件更新之前 updated 元件更新完畢 beforedestroy 元件銷毀之前 destroye...
vue生命週期
vue把整個生命週期劃分為建立 掛載 更新 銷毀等階段,每個階段都會給一些 鉤子 讓我們來做一些我們想實現的動作。學習例項的生命週期,能幫助我們理解vue例項的運作機制,更好地合理利用各個鉤子來完成我們的業務 我們分別來看看這幾個階段 1.beforecreate 此階段為例項初始化之後,此時的資料...
Vue 生命週期
import vue from vue el root 沒有的話,使用render,繼續沒有,就把el的outerhtml編譯成模板 template temp data beforecreate created el是原來的el beforemount 渲染函式 render h this.tex...