在网上找了好久,没有找到合适的答案,研究了一天希望sf上的朋友们能给解答一下。
假如有a、b、c三个组件,要做到:a->b(b刷新),b->c(c返回b时,b不刷新).
我现在的做法是在b的beforeRouteLeave
事件中记录一个
beforeRouteLeave(to, from, next) {
if (to.path == "/a") {
this.destroy = true;
}
next();
}
然后在deactivated
事件中销毁b组件
deactivated() {
if (this.destroy) {
this.$destroy();
}
}
这么做在第一次测流程是没问题的(a->b->c->b->a),
但是再测试(a->b->c->b)就有问题了,b并没有被缓存住,已经被销毁了。
不知道有没有什么好方法可以解决。
自己解决了,其实很简单,变通一下思路就可以了,
把b组件的数据加载不放到created中,而是放到activated中,再加个条件判断什么时候该加载数据,什么时候不该加载数据就OK了