当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何实现特定页面路由跳转缓存的业务场景?

丁文轩
2023-10-11

下面是一段 vue router 的实现

  {    path: 'father',    name: 'father',    // meta: { KeepAlive: true },    component: () => import('/src/views/father.vue'),    children: [      {        path: 'object/:objectId',        name: 'wrapperA',        component: () => import('/src/views/require/components/wrapperA.vue'),        children: [{          path: ':A',          name: 'A',          component: () => import('/src/views/require/components/A.vue'),        },{          path: ':C',          name: 'C',          component: () => import('/src/views/require/components/C.vue'),        },        ]      },    ]  },  {    path: 'father/B',    component: () => import('/src/common/B.vue'),  }

目前 father 路由下还有其他路由,

只有一种情况去缓存 A 页面,就是从 B 页面跳转到 A 页面,其他情况都不会缓存,这种如何实现?

共有2个答案

江向阳
2023-10-11

页面入口添加keep-alive

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

在全局路由守卫判断从B页面跳转A页面的情况

router.beforeEach((to, form, next) => {  if (form.name === 'B' && to.name === 'A') {    to.meta.keepAlive = true  } else {    to.meta.keepAlive = false  }  next()})
苏畅
2023-10-11

用keep-alive:

<keep-alive>  <router-view v-if="$route.meta.KeepAlive"></router-view></keep-alive><router-view v-if="!$route.meta.KeepAlive"></router-view>
router.beforeEach((to, from, next) => {  if (from.path === '/father/B' && to.name === 'A') {    to.meta.KeepAlive = true;  } else {    to.meta.KeepAlive = false;  }  next();});
 类似资料:
  • 问题: 前端如何跳转页面路径 ? 我尝试使用了路由的语法, 但是没有跳转

  • 本文向大家介绍react实现同页面三级跳转路由布局,包括了react实现同页面三级跳转路由布局的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了react实现同页面三级跳转路由布局的具体代码,供大家参考,具体内容如下  一级路由+布局组件: 布局css: 二级路由 首页组件 二级路由 视频组件  三级路由 视频 子页面 其余二级三级页面类似 以上就是本文的全部内容,希望对大家的学习有所

  • 如题,各位我有一个项目,现在有一个需求,在弹出窗口中跳转到一个选择页面,选择完成之后返回原来的页面,如何保持原来的页面状态不变? 尝试过使用keep-alive但是效果不理想。 请问有什么办法,或者什么思路! 备注:页面都是同一个站点的

  • 我如何在Drupal 9中禁用特定页面的缓存,我找到了一个解决方案,但它用于禁用所有页面的缓存,解决方案是:在settings.yml中添加此代码: 这是工作,但我只想禁用特定页面的缓存。谢谢。

  • 我的页面是三级嵌套路由,结构类似于 /message/detail/0。 但当我使用 this.$router.push('/index') 返回首页的时候,页面路径变成了/message/detail/index。 请问我该如何解决这个问题,希望从 /message/detail/0 页面直接跳转到 /index。 这个是路由配置的JS:

  • 本文向大家介绍Vue实现路由跳转和嵌套,包括了Vue实现路由跳转和嵌套的使用技巧和注意事项,需要的朋友参考一下 一、配置 Router  用 vue-cli 创建的初始模板里面,并没有 vue-router,需要通过 npm 安装 安装完成后,在 src 文件夹下,创建一个 routers.js 文件,和 main.js 平级 然后在 router.js 中引入所需的组件,创建 routers 对