keep-alive缓存三级及三级以上路由

简介: keep-alive缓存三级及三级以上路由

需求:需要缓存这个出入记录,当tab切换时不重新加载,当刷新页面时,或把这个关闭在重新打开时重新加载如图:

(我这里用的是芋道源码的前端框架)

keep-alive

1、include 包含页面组件name的这些组件页面,会被缓存起来

2、exclude 除了这些name以外的页面组件,会被缓存起来

3、没有include或者exclude属性,表示所有的路由组件都会被缓存起来

<template>
  <section class="app-main">
    <transition name="fade-transform" mode="out-in">
      <keep-alive :include="cachedViews" exclude="redirect">
        <router-view :key="key" />
      </keep-alive>
    </transition>
  </section>
</template>
<script>
export default {
  name: 'AppMain',
  computed: {
    cachedViews() {
      return this.$store.state.tagsView.cachedViews
    },
    key() {
      return this.$route.path
    }
  }
}
</script>

解决方法

现在router里面的index.js里面把这三个路由写出来

然后在仓库里面手动把二级路由加上

这出现的原因是多级路由导致的,就是router-view嵌套 在层级不同的router-view中切换tag会出现缓存数据失效的问题。目前keep-alive可以有效缓存一级,二级的路由菜单,3级以上菜单并不能做到缓存,这里提供一个解决方案:

在cachedViews中手动加上一级菜单和三级菜单之间,缺失的二级菜单的名字,这样二级菜单下的组件就会缓存了

目录
相关文章
|
6天前
|
存储 缓存 JavaScript
缓存组件状态,提升用户体验:探索 keep-alive 的神奇世界
缓存组件状态,提升用户体验:探索 keep-alive 的神奇世界
缓存组件状态,提升用户体验:探索 keep-alive 的神奇世界
|
6月前
|
缓存 JavaScript
vue中页面缓存keep-alive控制缓存清除
vue中页面缓存keep-alive控制缓存清除
|
6天前
|
缓存 JavaScript 网络架构
Vue.js 进阶技巧:keep-alive 缓存组件解析
Vue.js 进阶技巧:keep-alive 缓存组件解析
|
6天前
|
缓存 JavaScript 前端开发
掌握组件缓存:解开Vue.js中<keep-alive>的奥秘
掌握组件缓存:解开Vue.js中<keep-alive>的奥秘
|
6天前
|
缓存 JavaScript
keep-alive 是 Vue 内置的一个组件,被用来缓存组件实例。
keep-alive 是 Vue 内置的一个组件,被用来缓存组件实例。
|
9月前
|
缓存 JavaScript UED
vue 中如何利用 keep-alive 标签实现某个组件缓存功能?
vue 中如何利用 keep-alive 标签实现某个组件缓存功能?
112 0
|
5月前
|
缓存 JavaScript
Vue 路由缓存 防止路由切换数据丢失 路由的生命周期
Vue 路由缓存 防止路由切换数据丢失 路由的生命周期
|
6月前
|
缓存 前端开发
keep-alive缓存三级及三级以上路由
keep-alive缓存三级及三级以上路由
41 1
|
9月前
|
缓存 JavaScript
[Vue]缓存路由组件 & activated()与deactivated()
[Vue]缓存路由组件 & activated()与deactivated()
|
11月前
|
缓存 JavaScript 网络架构
Vue(Vue2+Vue3)——72.缓存路由组件
Vue(Vue2+Vue3)——72.缓存路由组件