分析
首先,答案是不会的,准确的说是不会直接调用。
默认情况下,也就是没有设置keep-alive,当离开当前路由时,会直接调用beforeDestroy和destroyed来销毁。
当组件设置keep-alive后,不会直接调用这个销毁周期函数,而是会在生命周期函数新增两个,activated和deactivated;
- 当第一次进入页面是,生命周期函数执行是这样的,简单描述一下:

- 当退出时,会触发deactivated()函数;
- 当再次进入此页面时,只会执行activated()函数;
如何调用销毁生命周期函数
配合上导航守卫,手动调用。
beforeRouteLeave(from, to, next){
this.$destroy();
// next();
}
结尾处,欢迎交流学习,纠错。
本文详细探讨了Vue.js中keep-alive组件的使用,特别是在路由切换时如何影响组件的生命周期。默认情况下,离开路由时会调用beforeDestroy和destroyed。但若使用了keep-alive,组件将激活activated和deactivated生命周期。首次进入页面时,会依次触发创建、挂载、激活;退出时触发deactivated。若需手动调用销毁,可以在beforeRouteLeave守卫中使用$destroy方法。
1068

被折叠的 条评论
为什么被折叠?



