vue使用keep-alive实现详情页进入列表页缓存,其他页面进入列表页不缓存

场景:查询列表页面输入筛选条件或者改变页码,进入详情页后返回都会刷新页面,不保留内容,所以通过对keep-alive的配置可以实现对筛选条件以及页面的保存

1. 配置路由出口渲染组件

在App.vue文件进行以下配置

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

// 
data() {
    return {
      isRouterAlive: true,
    };
},

//
provide() {
  return {
    reload: this.reload,
  };
},

//
methods: {
  reload() {
    this.isRouterAlive = false;
    this.$nextTick(() => {
      this.isRouterAlive = true;
    });
  },
}

2.在路由选项中,配置meta属性

{
    path: '/goodsList',
    name: 'GoodsList',
    component: require('@/page/index/goods/GoodsList'),
    meta: {
        keepAlive: true,
    }
},

 3.在列表页添加以下配置

inject: ["reload"],
beforeRouteEnter(to, from, next) {
    if (from.path !== "/see/applicationDetails") {
      next((vm) => {
        vm.reload();
      });
    } else {
      next();
    }
},

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue中,可以使用keep-alive组件来实现列表缓存。通过将列表组件包裹在keep-alive标签中,可以实现在不重新请求数据的情况下返回列表,保留之前的查询条件。 在使用keep-alive时,可以给列表的路由配置中的meta属性添加keepAlive: true的属性,表示需要缓存页面。例如: ```javascript { name: 'myList', path: '/my-list', component: myList, meta: { pageName: '列表', keepAlive: true, isBack: false } } ``` 这样配置后,当从详情页返回到列表时,列表的数据会被缓存起来,不需要再次请求数据。同时,其他页面进入列表时,不会保留之前的查询条件。 这样使用keep-alive组件可以有效地提升用户体验,避免重复请求数据,同时保留用户的操作状态。引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue使用keep-alive实现详情页进入列表缓存,其他页面进入列表缓存](https://blog.csdn.net/qq_41039151/article/details/122308982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue使用keep-alive缓存列表](https://blog.csdn.net/weixin_51435431/article/details/126483952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值