从列表页点击进详情页再返回列表页 应该还是之前的页码

1.改成可以走缓存的

<keep-alive> 
     <router-view v-if="$route.meta.keepAlive"></router-view>
 </keep-alive>  
 <router-view v-if="!$route.meta.keepAlive"></router-view>

2.详情页返回的要做标记

//返回时记录是从详情返回的
    actGoBack(){
      this.$route.meta.keepAlive = 'detailBack';    //详情回去的要记录一下,为了保留当前页码
      this.$router.go(-1);
    },

3.路由守卫设置 keepAlive

router.beforeEach((to, from, next) => { 
  // 路由全局前置守卫
  if (to.path !== '/login' && !Cookies.get('X-Access-Token')) {
    // 未登录
    next('/login')
  } else if (to.meta && to.params && !auth(to.meta.auth, to.params)) {
    // 权限不足
    next(false)
  } else {
    keepAlive(to,from) 
    next()
  }
})
function keepAlive(to,from){ 
  if(from.meta.keepAlive === 'detailBack'){   
    to.meta.keepAlive = true;       
  }else{                          
    to.meta.keepAlive = false;             
  }
}

4.想要页码不变,当前页的数据更新

activated(){ 
   this.getDataList();   //保持在当前页请求数据
 },

两个微妙的点
都用keepAlive字段 1.详情-列表 后再进详情会进keepAlive的else
详情页赋值为detailBack而不是true 是为了不出现from是true导致to是true导致下一个from是true直到所有的路由都为true
刚好 必须必须为true时才才进if

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值