vue keep-alive

本文详细解析了Vue.js中Router结合Keep-Alive组件实现页面缓存的技巧,通过配置路由元信息(meta),实现特定组件的状态保存与快速加载,避免了不必要的重复渲染,提高了用户体验和应用性能。

keep-alive缓存

    H组件
  <router-link></router-link>
  <keep-alive>
    <router-view  v-if="$route.meta.keepAlive"></router-view>
    <!--需要缓存的组件-->
  </keep-alive>
  <router-view  v-if="!$route.meta.keepAlive"></router-view>
  <!--不需要缓存的组件-->
  
  
  在router的index.js中
  {
    path:'/A',
    component: require('../components/A.vue'),
    meta:{
      keepAlive:true  //添加meta  A组件keepAlive为true 被缓存
    }
  }
  
  
  A组件跳转到B组件  从B组件返回A组件 A组件的数据状态不刷新(使用缓存的页面)
  
  在A组件中
  
   beforeRouteLeave(to, from, next) {
      from.meta.keepAlive = false;
      next();
    },
    
    
    在B组件中

    beforeRouteLeave(to, from, next) {
      // 设置下一个路由的 meta
      if (to.path == "/A") {
        to.meta.keepAlive = true;
      } else {
        to.meta.keepAlive = false;
      }
      next();
    },
  
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值