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并没有被缓存住,已经被销毁了。
不知道有没有什么好方法可以解决。

阅读 7.5k
1 个回答

自己解决了,其实很简单,变通一下思路就可以了,
把b组件的数据加载不放到created中,而是放到activated中,再加个条件判断什么时候该加载数据,什么时候不该加载数据就OK了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题