Vue 生命週期
為什麼需要了解
了解 Vue 運作模式,知道什麼地方可以做什麼事!
例如:在 beforeMount() 階段就無法進行 DOM 結構操作。在什麼時候可以發送 API ?
生命週期介紹
主要以 Vue3 生命週期說明,了解組件「從掛載到銷毀的整個過程」,主要分成的事件如下:
onBeforeMount → onMounted → onBeforeUpdate → onUpdate → onBeforeUnmount → onUnmounted
個人理解上會分成 3 個部分
- Mounted 掛載上去
- Update 是件更新
- Unmount 卸載
為什麼要卸載?是為了釋放資源,當事件不需要時就可以使用(定時器、是件監聽),防止接收到不必要的更新。
測試 code
vue2
<template>
<div>
<p>{{ message }}</p>
</div>
</template>
<script>
export default {
data() {
return {
message: 'Hello from Vue 2!'
};
},
beforeCreate() {
console.log('Vue 2: beforeCreate');
},
created() {
console.log('Vue 2: created');
},
beforeMount() {
console.log('Vue 2: beforeMount');
},
mounted() {
console.log('Vue 2: mounted');
},
beforeUpdate() {
console.log('Vue 2: beforeUpdate');
},
updated() {
console.log('Vue 2: updated');
},
beforeDestroy() {
console.log('Vue 2: beforeDestroy');
},
destroyed() {
console.log('Vue 2: destroyed');
}
};
</script>
vue3
<template>
<div>
<p>{{ message }}</p>
</div>
</template>
<script>
import {
ref,
onBeforeMount,
onMounted,
onBeforeUpdate,
onUpdated,
onBeforeUnmount,
onUnmounted
} from 'vue'
export default {
setup() {
const message = ref('Hello from Vue 3!')
onBeforeMount(() => {
console.log('Vue 3: onBeforeMount')
})
onMounted(() => {
console.log('Vue 3: onMounted')
})
onBeforeUpdate(() => {
console.log('Vue 3: onBeforeUpdate')
})
onUpdated(() => {
console.log('Vue 3: onUpdated')
})
onBeforeUnmount(() => {
console.log('Vue 3: onBeforeUnmount')
})
onUnmounted(() => {
console.log('Vue 3: onUnmounted')
})
return {
message
}
}
}
</script>