点击详情页后再点返回,如何做到页面不刷新

使用keep-alive组件对需要缓存的组件进行包裹

1.在app.vue中使用keep-alive组件对RouterView进行包裹

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

2.在需要缓存的页面中配置路由元信息meta,将keepAlive的值设为true

{
  path: '/home',
  name: 'home',
  component: () => import('../views/Home.vue'),
  meta: {
     keepAlive: true
  }
},

3.在列表页通过组件内的路由守卫beforeRouteLeave(离开前)来判断当前页面即将跳转的页面是不是详情页,如果是,就将keepAlive值设为true,如果不是,设为false

   防止其他页面返回列表页时数据不刷新

beforeRouteLeave(to,from,next){
  if(["detail"].includes(to.name)){
      from.meta.keepAlive = true;
  }else{
      from.meta.keepAlive = false;
   }
  next();
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值