vue中,组件使用keep-alive缓存,beforeDestroy和destroyed会被调用吗?
分析首先,答案是不会的,准确的说是不会直接调用。默认情况下,也就是没有设置keep-alive,当离开当前路由时,会直接调用beforeDestroy和destroyed来销毁。当组件设置keep-alive后,不会直接调用这个销毁周期函数,而是会在生命周期函数新增两个,activated和deactivated;当第一次进入页面是,生命周期函数执行是这样的,简单描述一下:当退出时,会触发deac
·
分析
首先,答案是不会的,准确的说是不会直接调用。
默认情况下,也就是没有设置keep-alive,当离开当前路由时,会直接调用beforeDestroy和destroyed来销毁。
当组件设置keep-alive后,不会直接调用这个销毁周期函数,而是会在生命周期函数新增两个,activated和deactivated;
- 当第一次进入页面是,生命周期函数执行是这样的,简单描述一下:
- 当退出时,会触发deactivated()函数;
- 当再次进入此页面时,只会执行activated()函数;
如何调用销毁生命周期函数
配合上导航守卫,手动调用。
beforeRouteLeave(from, to, next){
this.$destroy();
// next();
}
结尾处,欢迎交流学习,纠错。
更多推荐
已为社区贡献1条内容
所有评论(0)