解决vue 使用keepalive 一直缓存的页面的问题。

问题描述:

         Form01   ->  Form02(该页面的信息需要被缓存)   ->  Form03

          Form03 -> 返回Form02(信息已经被缓存)-> Form01 

          Form01  ->  Form02(信息被缓存,但是不想要这个缓存的)   ->  Form03

解决【不需要被缓存的】:

在需要缓存的页面添加  beforeRouteLeave (和mounted是同级奥)

beforeRouteLeave(to, from, next) {
      if (to.name === 'Form03') {
        if (!from.meta.keepAlive) {
          from.meta.keepAlive = true; //当我们进入到C时开启B的缓存
        }
        next()
      } else {
        from.meta.keepAlive = false;
        this.$destroy(); //销毁B的实例
        next(); //当我们前进的不是C时我们让B页面刷新
      }
}

-------------------上面的问题到此就可以解决了。

【后续】会更新关于VueRouter的一些还没有遇到的问题或者即将遇到的问题。VueRouter官网

你可能感兴趣的:(vue)