Vue3是Vue.js的下一個主要版本,它主要引入了Composition API,這閱讀Vue3源碼和創建高效,更容易組合的代碼。其中重要的一個Hooks就是onCreated。
一、概述
onCreated與Vue2.x中的created類似,作為組件實例的一個生命周期鉤子函數,當組件實例被創建時觸發。在組件初始化階段,我們可以在onCreated中進行一些基本的組件設計,比如初始化組件的數據、方法和組件的生命周期,等等。而在這個時候組件還沒有被掛載到DOM上。
import { onCreated } from 'vue'
export default {
onCreated() {
console.log('Component created');
}
}
二、數據初始化
Vue3中的數據驅動與Vue2.x相比有了很大的變化。在組件創建階段,我們通常需要進行一些組件數據的初始化。這時我們可以利用onCreated鉤子函數,在組件創建時進行數據的初始化賦值。
import { onCreated, reactive } from 'vue'
export default {
setup() {
const data = reactive({
name: 'Jack',
age: 18
})
onCreated(() => {
console.log(name: ${data.name}, age: ${data.age})
})
return {
data
}
}
}
三、調用方法
除了數據初始化,我們還可以在onCreated中定義一些組件方法,通過組件實例從而調用這些方法。在組件這個生命周期中調用方法可能會在其它方法執行期間觸發,因此可以在onCreated中定義一個方法引用,在其它方法中可以隨時使用該引用。
import { onCreated, ref } from 'vue'
export default {
setup() {
const title = ref("Vue3 onCreated")
function sayHello(name) {
console.log(${name} say: Hello World);
}
onCreated(() => {
sayHello('Jack')
})
return {
title
}
}
}
四、組件生命周期
onCreated是組件生命周期的一部分,在組件創建時自動調用。在Vue3中,onCreated代替了Vue2.x中的created生命周期鉤子函數。它是組件在Vue3中的第一個被調用的鉤子函數。
Vue3組件的生命周期函數按照順序依次為:onCreated、onMounted、onUpdated、onBeforeUnmount、onUnmounted。
import { onCreated, onMounted } from 'vue'
export default {
setup() {
onCreated(() => {
console.log('Component created');
})
onMounted(() => {
console.log('Component mounted');
})
}
}
五、總結
onCreated作為Vue3的生命周期函數之一,具有以下優點:
提供了組件實例中進行基本的組件設計和數據初始化的機會; 在組件創建階段調用,避免組件掛載時帶來的性能消耗,并且可以為其它生命周期函數提供數據基礎; 在組件創建階段提供了記錄日志或調試的機會,方便開發調試。在實際開發中,我們可以靈活地使用onCreated這個生命周期函數,利用它來初始化數據、調用其他方法,以及檢查組件實例的狀態。