`
xiaotongeye
  • 浏览: 19697 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

解决vue使用keep-alive三级页面缓存问题

    博客分类:
  • vue
阅读更多

需求描述:管理后台存在三级页面,列表页和详情页,列表页缓存,详情页不缓存

实现:使用keep-alive的include,两级页面都需要添加keep-alive,借鉴vue-element-admin tags-view组件的visitedViews状态对缓存页面进行管理

// home.vue
<keep-alive :include="cachedViews">
    <router-view :key="key"></router-view>
</keep-alive>

computed: {
      key() {
        return this.$route.fullPath
      },
      cachedViews() {
        return this.$store.state.tagsView.cachedViews
      },
},

 

// 二级页面
<keep-alive>
      <router-view></router-view>
</keep-alive>

 

// 全局钩子
beforeRouteEnter(to, from, next) {
    // 解决三级菜单缓存问题
    if (to.matched&&to.matched.length > 2) {
      for(let i = 1; i < to.matched.length; i ++) {
        const element = to.matched[i]
        if (pageArr.includes(element.components.default.name)) {
          to.matched.splice(i, 1)
        }
      }
    }
    next()
}

 

 

分享到:
评论

相关推荐

    vue中keep-alive,include的缓存问题

    然而,在使用`keep-alive`组件的`include`属性时,可能会出现一些缓存问题。`include`属性允许我们指定哪些组件应该被缓存,这样只有匹配到的组件实例在切换路由或组件时才会被缓存。 首先,让我们来了解一下`keep-...

    vue使用keep-alive切换页面,2种方法实现页面保持滚动位置.zip

    为了解决这个问题,Vue提供了一个名为`keep-alive`的组件,它可以缓存组件的状态,使得在页面切换后仍然能保留之前的滚动位置。下面我们将详细探讨两种使用`keep-alive`在Vue中实现页面保持滚动位置的方法。 首先,...

    vue keep-alive 动态删除组件缓存的例子

    接下来,我们要讲解如何在Vue项目中动态地删除keep-alive缓存的组件。在实际开发中,我们常常会遇到这样的业务场景:当用户切换不同的标签页(tab页)时,希望保持当前标签页组件的状态,以便在切换回来时能够恢复...

    vue-router-keep-alive-helper:Vue.js缓存自动管理插件,自动创建、销毁缓存页面

    Vue路由器保持活动帮助器 Vue Router Keep-alive Helper是用于管理Vue.js项目中的缓存页面的自动工具,只能使用一行配置代码。 English |为什么需要此帮手: 当使用vue-router开发Vue.js的SPA项目时, &lt;keep&gt;总是...

    vue keep-alive请求数据的方法示例

    本篇文章将详细介绍 Vue Keep-Alive 请求数据的方法示例,并提供解决方案来解决 keep-alive 属性的设置问题。 标题:Vue Keep-Alive 请求数据的方法示例 描述:本篇文章主要介绍了 Vue Keep-Alive 请求数据的方法...

    Vue keep-alive组件页面缓存控制示例

    在Vue中,`&lt;keep-alive&gt;`组件是一个特殊的组件,用于缓存子组件的状态,防止页面在切换时重新渲染,从而提高用户体验。本示例主要探讨如何使用`&lt;keep-alive&gt;`组件进行页面缓存控制。 `&lt;keep-alive&gt;`的基本用法是在...

    keep-alive不能缓存多层级路由菜单问题解决

    在Vue.js应用中,`keep-alive`组件用于缓存组件状态,以便在导航到其他页面后仍能保留之前的状态,从而提高用户体验。然而,在处理多层级路由菜单时,可能会遇到`keep-alive`无法正确缓存的问题。这个问题通常发生在...

    vue使用keep-alive保持滚动条位置的实现方法

    然而,当我们使用Vue内置的&lt;keep-alive&gt;组件来缓存组件状态时,会发现滚动条位置并没有被自动保存。为了解决这个问题,我们需要通过一些编程技巧来手动实现滚动条位置的保存与恢复。 首先,要实现滚动条位置的保持...

    详解vue-template-admin三级路由无法缓存的解决方案

    总之,解决vue-template-admin三级路由无法缓存的问题需要理解`keep-alive`的工作原理,以及如何通过路由的`matched`属性来控制缓存。同时,如果路由结构允许,适当调整路由设计也可以简化缓存管理,提高应用性能。

    vue中keep-alive的用法及问题描述

    在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件,防止二次渲染,这样会大大的节省...

    vue中keep-alive内置组件缓存的实例代码

    将要缓存的组件使用 keep-alive 包裹住即可。 keep-alive优点的介绍: 1. 切换组件时,当前组件不会触发销毁的生命周期钩子。也就是说不会销毁了。 2. 切换回来时,也不会重新创建。(既然都没有被销毁,哪里来的...

    基于vue中keep-alive缓存问题的解决方法

    但是一般在路由上都会加上keep-alive保持数据的状态,除非强制无缓存刷新,这就导致第一次进入详情页面时,可以在created中拿到id,但是返回后,再点击进入,就不会再走相应的生命周期了,无法拿到新的id ...

    Nextjs-keep-alive-demo.rar

    Nextjs-keep-alive 实现,vue中有这个专门的keep-alive插件,但是react没有,更别提nextjs了,这是现成的项目demo。 next9,10,11,12,13,14 及以上都可以用。直接使用或者移植到你的项目,非常方便。集成了发送...

    解决vue keep-alive 数据更新的问题

    这就是为什么使用`&lt;keep-alive&gt;`后,页面数据无法更新的问题所在。 为了解决这个问题,我们需要将数据获取的逻辑迁移到`activated`钩子中。因为`activated`在组件被缓存并重新激活时会触发,这确保了每次组件被显示...

    vuex + keep-alive实现tab标签页面缓存功能

    总的来说,"vuex + keep-alive" 实现的Tab标签页缓存功能,通过`vue-router`的`name`属性、`keep-alive`的`include`属性以及`vuex`的状态管理,有效地解决了页面缓存和标签切换的问题,提高了应用的性能和用户体验。...

    【JavaScript源代码】vue keepAlive缓存清除问题案例详解.docx

    本文将深入探讨Vue中的`&lt;keep-alive&gt;`缓存清除问题及其解决方案。 首先,我们来讨论一下常见的错误做法。一种常见的错误尝试是通过`v-if`和`v-else`来决定是否缓存组件: ```html &lt;keep-alive v-if="shouldCache"&gt;...

    vue里如何主动销毁keep-alive缓存的组件

    本文将详细介绍如何在Vue项目中,特别是在使用了`keep-alive`组件缓存的情况下,主动销毁那些被缓存的组件。 背景介绍 在后台管理系统中,使用标签页切换是一种常见的用户交互方式。为了提升用户体验,当用户切换...

    Vue中keep-alive组件的深入理解

    为了解决这个问题,Vue提供了`keep-alive`组件。 `&lt;keep-alive&gt;`组件的基本用法是在需要缓存的组件外层添加包裹。例如,在路由出口的`&lt;router-view&gt;`上,我们可以根据路由元信息`meta`来决定是否启用`keep-alive`:...

Global site tag (gtag.js) - Google Analytics