vue 组件缓存问题

在网上找了好久,没有找到合适的答案,研究了一天希望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了

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注