Vue實例的生命週期鉤子函數(8個)
- beforeCreate
剛 new了一個組件,無法訪問到數據和真實的dom,基本上這個好像不能幹啥
- created
data屬性完成了賦值,可以對數據進行修改但是不會觸發updated,在這裏可以做初始數據的獲取
- beforeMount
render準備要渲染了,函數中虛擬dom已經創建完成,這時候改變數據也不會觸發update,在這裏可以做初始數據的獲取
- mounted
開始render,渲染出真實dom,執行mounted鉤子函數,組件已經出現在頁面中,數據,事件,都DOM都處理好了。這裏你 可以改是進行真實的DOM操作
- beforeUpdate
組件,實例數據更新之前會執行的函數,虛擬DOM會重新構建虛擬DOM,與上一次的虛擬DOM對比後重新渲染。切記不可 進行數據修改否則會出現死循環
- updated
更新完會執行的函數,切記不可進行數據修改否則會出現死循環
- beforeDestroy
實例被銷燬之前會執行的函數,做善後的工作,清除計時器,清除非指令綁定的事件等等
- destroyed
實例被銷燬後會執行的函數,也可以做善後工作。
<template>
<div class="hello">
Hello World!
</div>
</template>
<script>
export default {
name: "HelloWorld",
data() {
return {
msg: "Welcome to Your Vue.js App"
};
},
beforeCreate: function() {
console.log("data屬性光聲明沒有賦值的時候");
},
created: function() {
console.log("data屬性完成了賦值");
},
beforeMount: function() {
console.log("頁面上的{{name}}還沒有被渲染成真正的數據");
},
mounted: function() {
console.log("頁面上的{{name}}被渲染成真正的數據");
},
beforeUpdate: function() {
console.log(" 數據(data屬性)更新之前會執行的函數");
},
updated: function() {
console.log("數據(data屬性)更新完會執行的函數");
},
beforeDestroy: function() {
console.log("實例被銷燬之前會執行的函數");
},
destroyed: function() {
console.log("實例被銷燬後會執行的函數");
}
};
</script>
<style scoped>
</style>
console這樣一個輸出順序:
大概這樣一個 生命週期鉤子函數執行的順序,包括我之前是用angular開發跟vue一樣 他也有自己的生命週期鉤子函數。
生命週期簡單來說就是一個組件從創建到初始化到銷燬的一個過程,在這個過程中有這些生命週期鉤子函數我們可以更方便的去操作整一個組件。