在路由离开前的钩子函数
beforeRouteLeave(to, from, next) {
const vm = this;
vm.$destroy();
next();
},
获取this,调用destroy方法,那么因该是销毁掉当前实例了,下一次进入应该是重新走一遍生命流程,但是打断点发现下一次直接进了activated,请问我该怎么完全销毁这个实例呢?
在路由离开前的钩子函数
beforeRouteLeave(to, from, next) {
const vm = this;
vm.$destroy();
next();
},
获取this,调用destroy方法,那么因该是销毁掉当前实例了,下一次进入应该是重新走一遍生命流程,但是打断点发现下一次直接进了activated,请问我该怎么完全销毁这个实例呢?
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
你不应该destroy当前的组件,而是destroy包裹在外的keep-alive。参考vue源码中的keep-alive.js如下:
所以,只要把keep-alive给destroy掉,你被缓存的组件自然会销毁。