返回顶部
首页 > 资讯 > 精选 >keep-alive怎么清除缓存
  • 289
分享到

keep-alive怎么清除缓存

2023-06-20 21:06:51 289人浏览 薄情痞子
摘要

小编给大家分享一下keep-alive怎么清除缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!开篇场景我的项目是前后端没有分离的,技术栈是layui+Vue+j

小编给大家分享一下keep-alive怎么清除缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

开篇场景

我的项目是前后端没有分离的,技术栈是layui+Vue+jq,vue是我后面引入的,为了能够更好的组件化,将页面组件化,减少代码重复量,因为jq的页面需要经常获取dom 元素,导致页面非常的冗余,jq 的页面也不好做组件化,将页面的功能抽离封装,所以我引入了vue,最近需要是实现一个需求,就是多页面缓存,通过点击左边的菜单栏,右边展示页面,但是需要将点击过的页面都进行缓存,如下图

keep-alive怎么清除缓存

这是我做的一个简单的例子

使用v-for直接渲染

刚开始我的想法是设计一个数组,每次点击的时候将点击的组件push到一个数组,然后通过v-for用自定义组件进行遍历;

keep-alive怎么清除缓存

keep-alive怎么清除缓存

发现点击的时候会把内容都加进去,这个时候就需要一个index,来显示当前的高亮,而且需求是每次只显示一个页面,这个时候就要通过index去隐藏其他的页面。

keep-alive怎么清除缓存

v-for存在问题,删除的时候会因为数组改变重新渲染

keep-alive怎么清除缓存

此时可以看到实现了这个功能,但是每次点击都添加很多相同的元素 这个时候我们就可以做去重的操作

通过去重简单的实现了多页面的功能

因为我的功能是需要实现多页面缓存 就是要将这些页面都缓存起来,所以我用了keep-alive这个组件,但是数组改变的时候,页面会发生重新渲染

keep-alive怎么清除缓存

keep-alive怎么清除缓存

当我操作了B 页面 我把A 页面关闭也就是删除之后B 页面就重新渲染了 这就达不到我要的缓存的效果。所以并不能直接使用v-for 直接进行渲染

我后面想到自己实现个自定义指令,自己去判断是否重新渲染, 但是自定义指令根本没有this ,拿不到实例也就拿不到vnode 也就没法自己实现缓存。

后面我想自己写个组件用jsx 语法去渲染 自己判断是否缓存,还是重新创建实例,但是 我拿到缓存渲染不上去。
之后我就想到了keep-alive这个组件,不循环直接渲染当前高亮的那个页面

直接用自定义组件渲染

keep-alive怎么清除缓存

keep-alive怎么清除缓存

keep-alive怎么清除缓存

这时候 可以实现缓存的功能了,自己实现一个keep-alive还是很麻烦的,自带的这个keep-alive 还是很好用的,缓存还是很强的,

keep-alve 强大的缓存存在的问题

后面我发现了一个问题, 当我在页面做了操作,关闭了之后,在重新点开的时候,页面还是有数据,只能说keep-alive的缓存太厉害了,之后我就想怎么去清除这个缓存,官网有2个api,include跟exclude,include是包含那些组件的name 才会缓存,exclude刚好相反,是包含了那些就不缓存,但是我的页面组件是之前就构建好的,是个匿名的组件

keep-alive怎么清除缓存

我试过加name 并不能起到效果,我在度娘上查了下怎么清除缓存的,

keep-alive怎么清除缓存

参考文章:https://www.yisu.com/article/219189.htm

我就想到了 我能不能删除的时候也把它的缓存也清除了

找了好久还是让我找到了cache

keep-alive怎么清除缓存

这个是我简单写的例子是在 $children[0].$options.parent.cache,在我真实的项目是_vnode.chindren.componentInstance里面的第一个元素里面

keep-alive怎么清除缓存

最关键是这个带有keep-alive的 如果当你找到这个东西 你就能找到cache了,我之前试过写jsx,好像没找到cache这个东西,估计是没有keep-alive就没有cache,自己实现一个keep-alive还是很难的。

找到cache 可以看到它里面的key名字跟我们组件的名字有关系,可以用indexOf 去匹配然后删除cache

keep-alive怎么清除缓存

keep-alive怎么清除缓存

keep-alive怎么清除缓存

可以看到功能已经实现了,这样子就可以实现多页面缓存了。

不得不说 vue还是很强大的 keep-alive 还是很厉害的

以上是“keep-alive怎么清除缓存”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: keep-alive怎么清除缓存

本文链接: https://lsjlt.com/news/300098.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • keep-alive怎么清除缓存
    小编给大家分享一下keep-alive怎么清除缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!开篇场景我的项目是前后端没有分离的,技术栈是layui+vue+j...
    99+
    2023-06-20
  • 图文详解keep-alive如何清除缓存
    目录开篇场景 使用v-for直接渲染 直接用自定义组件渲染keep-alve 强大的缓存存在的问题 总结开篇场景 我的项目是前后端没有分离的,技术栈是layui+vue+jq,vu...
    99+
    2024-04-02
  • vue如何使用keep-alive后清除缓存
    小编给大家分享一下vue如何使用keep-alive后清除缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是keepalive在平常开发中,有部分组件没有必...
    99+
    2023-06-20
  • vue使用keep-alive后清除缓存的方法
    什么是keepalive? 在平常开发中,有部分组件没有必要多次初始化,这时,我们需要将组件进行持久化,使组件的状态维持不变,在下一次展示时,也不会进行重新初始化组件。 ...
    99+
    2024-04-02
  • vue如何使用keep-alive缓存页面
    这篇文章主要介绍vue如何使用keep-alive缓存页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!keep-alive缓存页面比如在表单输入页面进入下一步后,再返回上一步到表单页时要保留表单输入的内容、比如在列...
    99+
    2023-06-26
  • 如何解决vue中keep-alive缓存问题
    这篇文章将为大家详细讲解有关如何解决vue中keep-alive缓存问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue开发的时候,我们经常会有这样的需求:开发一个详...
    99+
    2024-04-02
  • vue3 keep-alive实现tab页面缓存功能
    先上图  如何在我们切换tab标签的时候,缓存标签最后操作的内容,简单来说就是每个标签页中设置的比如搜索条件及结果、分页、新增、编辑等数据在切换回来的时候还能保持原样。 ...
    99+
    2023-05-17
    vue3 keep-alive页面缓存 vue3 tab页面缓存
  • vue中keep-alive多级路由缓存问题
    目录1.问题描述 2.原因分析 3.解决思路 4.处理过程1.问题描述 对账中心当便捷导航菜单最后两个是同一模块且是三级及以上菜单时,正常切换两个便捷页签时是可以正常缓存的,但删除...
    99+
    2024-04-02
  • vue中使用keep-alive动态删除已缓存组件方式
    目录项目场景问题描述解决方案项目场景 在做后台管理系统的时候,有这样一个需求: 后台的界面如下: 点击左边的菜单,会在右边的顶部生成一个个tag导航标签。当打开多个tag页时,用户...
    99+
    2022-11-13
    vue使用keep-alive keep-alive动态删除 keep-alive删除缓存组件
  • vue中keep-alive多级路由缓存问题怎么处理
    本篇内容介绍了“vue中keep-alive多级路由缓存问题怎么处理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.问题描述对账中心当便捷...
    99+
    2023-06-22
  • vue中keep-alive如何实现列表页缓存
    小编给大家分享一下vue中keep-alive如何实现列表页缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!需求:商品列表页面...
    99+
    2024-04-02
  • 怎么清除css缓存
    这篇文章主要介绍怎么清除css缓存,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构...
    99+
    2023-06-15
  • redis缓存怎么清除
    redis 清除缓存的方法如下:清除所有键:使用 flushall 命令清除所有键。清除特定模式下的键:使用 del 命令清除符合特定模式的键。清除过期键:使用 expire 命令为键设...
    99+
    2024-04-08
    redis
  • vue Keep-alive组件缓存的简单使用代码
    目录Props:用法:一、基本用法二、结合Router使用总结Props: include - 字符串或正则表达式。只有名称匹配的组件会被缓存。 exclude - 字符串或正则表达...
    99+
    2024-04-02
  • vue2.0中keep-alive怎么用
    这篇文章主要介绍vue2.0中keep-alive怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.基本用法vue2.0提供了一个keep-alive组件用来缓存组件,避免多次...
    99+
    2024-04-02
  • keep-alive+vuex如何让缓存的页面灵活起来
    这篇文章主要介绍keep-alive+vuex如何让缓存的页面灵活起来,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!引入在使用vue + vue-router开发SPA的时候,有没有...
    99+
    2024-04-02
  • ecshop怎么清除mysql缓存
    这篇文章主要介绍了ecshop怎么清除mysql缓存,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ECSHOP的缓存存放在templates/caches/文章夹下,时间长了...
    99+
    2023-06-14
  • win7怎么清除dns缓存
    这篇“win7怎么清除dns缓存”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win7怎么清除dns缓存”文章吧。一、使用W...
    99+
    2023-06-28
  • Vue的keep-alive怎么使用
    这篇文章主要讲解了“Vue的keep-alive怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue的keep-alive怎么使用”吧! 用法 ...
    99+
    2024-04-02
  • linux怎么清除free内存缓存
    要清除Linux中的Free内存缓存,可以使用以下方法之一: 使用sync命令刷新磁盘缓存,并释放内存缓存: $ sudo sy...
    99+
    2024-02-29
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作