场景:查询列表页面输入筛选条件或者改变页码,进入详情页后返回都会刷新页面,不保留内容,所以通过对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();
    }
},

GitHub 加速计划 / vu / vue
207.55 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 5 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐