news 2026/4/17 19:24:24

Map 缓存和拿取

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Map 缓存和拿取

为什么 Map 能实现缓存?

缓存的核心是「键值对存储 + 快速读取」,Map 天生就是为这种场景设计的,相比普通对象,它更适合做缓存:

1. Map 的本质:是 ES6 新增的键值对集合,类似 “字典”,可以用任意类型(字符串、数字、对象等)作为键(key),对应存储一个值(value)。

2.存储逻辑(set 方法):

chartConfigCache.set(chartId, { content:"内容", height:"高度", url:"路径" })

把 chartId 作为唯一标识(键),确保每个缓存数据不冲突;

把相关的配置、高度等数据打包成对象作为值,绑定到这个键上,存入 Map 容器中。

3.读取逻辑(get 方法):

chartConfigCache.get(chartId)

根据传入的 chartId(本质也是某个图表的唯一标识),从 Map 中查找对应的 “值”;
如果找到,就返回之前存储的图表数据对象;如果没找到,返回 undefined(所以代码中需要先 “检查缓存” )

// 1. 创建一个全局/模块级的 Map 实例,作为缓存容器 const chartConfigCache = new Map(); // 2. 第二步:将接口返回的图表数据存入缓存(通常是接口请求成功后执行) chartConfigCache.set(chartId, { content: res.result.output, // 图表配置内容 height: res.result.height, // 图表高度 url: res.result.url // 图表相关链接 }); // 3. 第三步:后续使用时,从缓存中读取指定 chartId的缓存数据 const cachedData = chartConfigCache.get(chartId);

在 Vue 中的使用场景补充

这段代码在 Vue 中通常会这样用(完整示例),帮你理解缓存的实际价值:

<template> <div :style="{ height: chartHeight + 'px' }">{{ chartContent }}</div> </template> <script> // 注意:如果想让缓存跨组件/页面生效,要把 Map 定义在组件外部(模块级) const chartConfigCache = new Map(); export default { data() { return { chartId: 'chart_123', chartContent: '', chartHeight: 0 }; }, async mounted() { // 第一步:先查缓存,有缓存就直接用,不用请求接口 const cachedData = chartConfigCache.get(this.chartId); if (cachedData) { this.chartContent = cachedData.content; this.chartHeight = cachedData.height; return; // 直接返回,跳过接口请求 } // 第二步:没有缓存,才请求接口获取数据 try { const res = await this.$http.get('/api/getChartConfig', { params: { chartId: this.chartId } }); // 接口返回数据后,存入缓存 chartConfigCache.set(this.chartId, { content: res.result.output, height: res.result.height, url: res.result.url }); // 渲染数据 this.chartContent = res.result.output; this.chartHeight = res.result.height; } catch (err) { console.error('请求图表数据失败:', err); } } }; </script>

总结

1. 缓存的核心原理:利用 Map 的 set(key, value) 存储键值对、get(key) 读取对应值的特性,将图表唯一标识(chartId)作为键,图表数据作为值,实现 “一次存储、多次读取”。
2. 缓存的价值:避免重复请求接口 / 重复计算图表数据,减少网络请求和性能消耗,提升 Vue 页面的渲染速度。
3. 关键注意点:Map 是内存级缓存,页面刷新 / 浏览器关闭后会清空;如果需要持久化缓存,要结合 localStorage/sessionStorage,但图表配置通常用内存缓存就足够。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 20:11:28

KlipperScreen触摸屏界面终极配置指南

问题导向&#xff1a;为什么需要专业的3D打印机控制界面&#xff1f; 【免费下载链接】KlipperScreen GUI for Klipper 项目地址: https://gitcode.com/gh_mirrors/kl/KlipperScreen 当您面对复杂的3D打印任务时&#xff0c;是否经常遇到这些困扰&#xff1a;温度控制不…

作者头像 李华
网站建设 2026/4/18 3:48:08

揭秘跨平台Agent通信黑盒:3个关键接口标准让系统无缝协作

第一章&#xff1a;揭秘跨平台Agent通信黑盒&#xff1a;3个关键接口标准让系统无缝协作在分布式系统架构中&#xff0c;跨平台Agent之间的高效通信是实现自动化协同的核心。为打破异构环境下的信息孤岛&#xff0c;业界逐步确立了三大关键接口标准&#xff0c;它们共同构成了A…

作者头像 李华
网站建设 2026/4/18 3:49:57

终极指南:5分钟掌握PC微信小程序wxapkg包解密技巧

终极指南&#xff1a;5分钟掌握PC微信小程序wxapkg包解密技巧 【免费下载链接】pc_wxapkg_decrypt_python PC微信小程序 wxapkg 解密 项目地址: https://gitcode.com/gh_mirrors/pc/pc_wxapkg_decrypt_python PC微信小程序wxapkg解密工具是一款专为开发者设计的Python解…

作者头像 李华
网站建设 2026/4/18 3:49:30

30、系统安全强化与认证:保障网络安全的全面指南

系统安全强化与认证:保障网络安全的全面指南 1. 无线网络安全强化 无线网络的安全对于企业和个人来说都至关重要。以下是一些强化无线网络安全的建议: - 使用高等级加密协议 :采用硬件支持的最高(通用)级别的 WEP/WPA 加密协议,若可能,升级旧硬件以支持 256 位密钥…

作者头像 李华
网站建设 2026/4/18 3:48:22

为什么你的交易Agent总是慢半拍?,深度剖析执行延迟的7个隐藏瓶颈

第一章&#xff1a;为什么你的交易Agent总是慢半拍&#xff1f;在高频交易系统中&#xff0c;毫秒甚至微秒级的延迟差异都可能决定盈亏。许多开发者发现&#xff0c;尽管交易Agent逻辑正确&#xff0c;却总在市场变化后才做出反应。这背后往往不是算法问题&#xff0c;而是系统…

作者头像 李华
网站建设 2026/4/18 5:32:52

触觉智能RK3506开发板配置USB复合设备(下)

本文基于触觉智能RK3506开发板&#xff0c;为大家介绍配置USB复合设备&#xff0c;本章节将介绍UMS和ACM复合设备数据交互。UMSUMS是USB协议体系中定义大容量存储设备通信规范的标准化协议&#xff0c;通过批量传输协议实现主机与存储设备间的数据交换&#xff0c;给Host设备提…

作者头像 李华