1.对于全局的代码,比如定时器等,在 beforeDestroy或 destroyed 生命周期时将其销毁。如果在跳转路由时候,组件销毁了,全局的定时器却没有销毁,这会使得页面产生卡顿。
beforeDestroy(){
clearInterval(this.intervalId);
}
2.v-if方式
总结:此方式实现了组件销毁并重新渲染
3.:key方式
<template>
<third-comp :key="menuKey"/>
</template>
export default{
data(){
return {
menuKey:0
}
},
watch:{
$route() {
++this.menuKey
}
}
}
总结:此方式实现了组件销毁并重新渲染
4.destroy是组件内部销毁自已。和外部销毁(v-if)的区别在于,内部销毁不会移除页面上已有的DOM的。所以一般需要加上移除DOM的代码
destroyElement() {
this.el.parentNode.removeChild(this.$el);
},