在 vue 3 中,可以通过两种方式卸载组件:(1) 使用 beforeunmount 生命周期钩子,在组件卸载前执行清理操作;(2) 使用 ismounted 属性,在组件卸载后执行任何操作。
Vue 3 中卸载组件
在 Vue 3 中,有两种主要方法可以卸载组件。
方法 1:使用 beforeUnmount 生命周期钩子
beforeUnmount 生命周期钩子在组件即将卸载时触发。你可以使用它来执行任何必要的清理操作,例如:
立即学习“前端免费学习笔记(深入)”;
// MyComponent.vue
export default {
beforeUnmount() {
// 清理任何挂载的监听器、定时器或订阅
this.someListener.remove()
clearInterval(this.someTimer)
this.someSubscription.unsubscribe()
}
}
方法 2:使用 isMounted 属性
isMounted 属性是一个内置的 Vue 属性,它在组件被卸载后变为 false。你可以使用它来在组件卸载时执行任何操作:
// MyComponent.vue
export default {
data() {
return {
isMounted: true
}
},
unmounted() {
// 清理任何挂载的监听器、定时器或订阅
this.someListener.remove()
clearInterval(this.someTimer)
this.someSubscription.unsubscribe()
},
// 仅在组件被挂载时执行
mounted() {
this.someListener = this.$el.addEventListener(...)
this.someTimer = setInterval(...)
this.someSubscription = this.$store.subscribe(...)
}
}