vue3生命周期
1、Options API 生命周期
Options API 生命周期类似vue2生命周期,其中beforeDestroy改为beforeUnmount,destroyed改为unmounted
export default {
beforeCreate() {
console.log('beforeCreate')
},
created() {
console.log('created')
},
beforeMount() {
console.log('beforeMount')
},
mounted() {
console.log('mounted')
},
beforeUpdate() {
console.log('beforeUpdate')
},
updated() {
console.log('updated')
},
// beforeDestroy 改名
beforeUnmount() {
console.log('beforeUnmount')
},
// destroyed 改名
unmounted() {
console.log('unmounted')
}
}
渲染时生命周期执行
![](https://img.haomeiwen.com/i17801587/233663b7e2a60de6.png)
更新生命周期
![](https://img.haomeiwen.com/i17801587/af65654761d71bc9.png)
[图片上传中...(image.png-15c5a8-1652280368126-0)]
销毁生命周期
![](https://img.haomeiwen.com/i17801587/96c6b03e10423441.png)
2、Composition API生命周期
在使用Composition API生命周期之前要先引入,例如:
import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue'
然后在使用
export default {
name: 'LifeCycles',
props: {
msg: String
},
// 等于 beforeCreate 和 created
setup() {
console.log('setup')
onBeforeMount(() => {
console.log('onBeforeMount')
})
onMounted(() => {
console.log('onMounted')
})
onBeforeUpdate(() => {
console.log('onBeforeUpdate')
})
onUpdated(() => {
console.log('onUpdated')
})
onBeforeUnmount(() => {
console.log('onBeforeUnmount')
})
onUnmounted(() => {
console.log('onUnmounted')
})
}
}
</script>
渲染时生命周期
![](https://img.haomeiwen.com/i17801587/2106e3db8cd9d299.png)
更新时生命周期
![](https://img.haomeiwen.com/i17801587/e55ad49dd9d5751f.png)
销毁时生命周期
![](https://img.haomeiwen.com/i17801587/7bd631853d35e094.png)
如果Composition API生命周期和Options API 生命周期同时存在,都会执行,但是先执行Composition API生命周期
export default {
name: 'LifeCycles',
props: {
msg: String
},
beforeCreate() {
console.log('beforeCreate')
},
created() {
console.log('created')
},
beforeMount() {
console.log('beforeMount')
},
mounted() {
console.log('mounted')
},
beforeUpdate() {
console.log('beforeUpdate')
},
updated() {
console.log('updated')
},
// beforeDestroy 改名
beforeUnmount() {
console.log('beforeUnmount')
},
// destroyed 改名
unmounted() {
console.log('unmounted')
},
// 等于 beforeCreate 和 created
setup() {
console.log('setup')
onBeforeMount(() => {
console.log('onBeforeMount')
})
onMounted(() => {
console.log('onMounted')
})
onBeforeUpdate(() => {
console.log('onBeforeUpdate')
})
onUpdated(() => {
console.log('onUpdated')
})
onBeforeUnmount(() => {
console.log('onBeforeUnmount')
})
onUnmounted(() => {
console.log('onUnmounted')
})
},
}
执行结果:
![](https://img.haomeiwen.com/i17801587/01c04cefdef5edba.png)
网友评论