vur router keep-alive 路由缓存

很多时候列表页跳内页啥的,跳来返回都需要把前一页的数据缓存了
我们之前用的文案是keep-alive
但keep-alive有个问题是,三级菜单就会有奇奇怪怪的问题
清除也没办法
后面用了一个插件navigation。

<navigation>
          <router-view></router-view>
        </navigation>

可以做到a跳b,b跳去a,a页面是缓存 a跳去b,b是新开,b跳去c,b被缓存这种
但有时候我们又不需要缓存,
在不需要缓存的页面加上

 this.$navigation.cleanRoutes()

然后我们在内页要做返回的判断,也被缓存了

  beforeRouteEnter(to, from, next) {
    next(vm => {
      // console.log(to, '组件独享守卫beforeRouteEnter第一个参数')

      if (vm.$route.query.type && vm.$route.query.type === 'post') {
        vm.back = 1

        vm.setDetail()
      }
      // 因为当钩子执行前,组件实例还没被创建
      // vm 就是当前组件的实例相当于上面的 this,所以在 next 方法里你就可以把 vm 当 this 来用了。
      console.log(vm) // 当前组件的实例
    })
  },

猜你喜欢

转载自blog.csdn.net/qq_28008615/article/details/88549832