生命周期的鈎子函數(寫在方法的下面,一共有11個)
1.vue的整個生命周期的特定時刻,自動調用的函數
2.beforeCreate 實例創建之前調用, 數據沒有掛載,不能訪問數據
vue實例初始化的時候就被執行(數據加載之前執行的一個函數,拿不到data里面的數據)
3.created 實例創建之后調用,能訪問、修改數據,單修改數據不會觸發updated函數 在這里可以向服務器請求數據,(也可以拿到父組件的數組進行修改等操作,這一步驟是沒有操作到模板,數據和模板還沒有結合)
下一步就是開始找模板,找不到的話就把el接管的div作為模板,如果有模板就會渲染模板
4.beforeMount 編譯模板已經完成(模板和數據都已經准備就緒了) 虛擬dom已經存在 還沒有進行進行渲染
也能修改數據,但是修改數據不會觸發update函數(組件不卸載,只能執行一次)
5.render 渲染是vue自動完成的。如果手動寫render函數,渲染的東西
就會把 vue自動渲染的東西覆蓋調
6. mounted 真實的dom元素已經存在, 可以獲取節、修改數據,而且修改數據會觸發update函數(頁面已經渲染,替換了之前的dom元素)
7. beforeUpdate 數據更新之前觸發(數據更新:就是dom上的數據發生變化)
8. updated 數據修改后執行 修改數據要可能造成死循環(在這里盡量不要修改數據)
9. beforeDestroy 銷毀之前 要做一些清理工作,防止內存泄漏
10. activated keep-alive 激活動態組件時調用
11. deactivated keep-alive 卸載動態組件時調用(已經銷毀的時候執行)
Vue生命周期
1、什么是vue生命周期?
答: Vue 實例從創建到銷毀的過程,就是生命周期。也就是從開始創建、初始化數據、編譯模板、掛載Dom→渲染、更新→渲染、卸載等一系列過程,我們稱這是 Vue 的生命周期。
2、vue生命周期的作用是什么?
答:它的生命周期中有多個事件鈎子,讓我們在控制整個Vue實例的過程時更容易形成好的邏輯。
3、vue生命周期總共有幾個階段?
答:它可以總共分為8個階段:創建前/后, 載入前/后,更新前/后,銷毀前/銷毀后
4、第一次頁面加載會觸發哪幾個鈎子?
答:第一次頁面加載時會觸發 beforeCreate, created, beforeMount, mounted 這幾個鈎子
5、DOM 渲染在 哪個周期中就已經完成?
答:DOM 渲染在 mounted 中就已經完成了。
6、簡單描述每個周期具體適合哪些場景?
答:生命周期鈎子的一些使用方法: beforecreate : 可以在這加個loading事件,在加載實例時觸發 created : 初始化完成時的事件寫在這里,如在這結束loading事件,異步請求也適宜在這里調用 mounted : 掛載元素,獲取到DOM節點 updated : 如果對數據統一處理,在這里寫上相應函數 beforeDestroy : 可以做一個確認停止事件的確認框 nextTick : 更新數據后立即操作dom