网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月09日漏签0天
前端吧 关注:224,299贴子:1,389,430
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 30回复贴,共1页
<<返回前端吧
>0< 加载中...

keep-alive遇到的问题

  • 只看楼主
  • 收藏

  • 回复
  • Vodka
  • 人中龙凤
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
配合keep-alive组件,做了一个头部页签的功能,即打开a菜单后,该菜单会被缓存下来,并有一个页签会显示在头部。现在是想要点击页签的删除后清楚该菜单的缓存。问题是keep-alive如何清除缓存


  • 菜得让人发毛
  • 四方游侠
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你看这个想法可不可行:通过keep- alive组件的include字段或者exclude字段去定制缓存的行为,为页签的删除按钮绑定事件,动态修改include/exclude字段的值。我试了一下,是可行的


2025-09-09 21:19:37
广告
不感兴趣
开通SVIP免广告
  • 莫丶欺
  • 人海孤鸿
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
10年前遇到过keep-alive,不会刷新的问题。加不同的key就行了


  • 尊贵的巫妖王
  • 四方游侠
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
只有3楼说的那个方法,没找到其他方法,你可以去参考一下一些其他二次开发框架,里面有这个功能


  • 暖の冰
  • 江湖少侠
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你前年做过这种需求,用include去实现的,当时也踩了坑,具体哪些坑已经记不清了,反正感想是做缓存是真的烦,存容易,删麻烦


  • Vodka
  • 人中龙凤
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
但是非常奇怪的一点是我的很多组件用include写name的方式没有用。不知道为什么。而且万一存在大量匿名组件感觉include的也非常不适用。看了下keep-alive的源码在尝试直接清除keep-alive中的缓存的方式


  • 叶里里
  • 武林新贵
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用store来缓存当前数据


  • 小雨写立可白
  • 江湖少侠
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这个问题其实很简单,理解框架本身就很容易。vue的框架吧。更新视图是数据的收集依赖。而keepalive缓存应该是内存中的,也就是缓存的是vnode吧。如果你的依赖和vnode不变,保证keepalive的key不变,她应该有个缓存队列的。key存在就会缓存。也就是你想删除删除他cache队列的key。我是提供给你原理思路。实现和业务你自己想想。这些数据一定都会绑定在原型上,并且可以拿到,有对应的api。你找找。


2025-09-09 21:13:37
广告
不感兴趣
开通SVIP免广告
  • kaneizikkk
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼上那个解决方案好像就可以了。
之前做这个功能就是通过找vnode里对应父节点下的子节点遍历,相同name的组件删除就没有缓存了


  • Vodka
  • 人中龙凤
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
现在确实是采用这种方法,但是有个问题。如图代码。当我同时存在A和B页签的时候。我当前路由为A然后我关闭了B。此时再打开B时B的缓存仍然存在。理由是第一个判断语句使得flag=false。然后就寸步难行了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 30回复贴,共1页
<<返回前端吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示