当前位置: 首页 > 知识库问答 >
问题:

javascript - vue项目里面接口和参数相同如何去做缓存?

祁默
2023-05-13

场景描述:
A页面里面用了a.b.c三个不同组件,B页面也同时引用了a.b.c三个相同的组件,怎么做到A页面第一次请求了,B页面进入时候不在请求a.b.c三个组件的数据,直接用A页面的请求的接口缓存数据
实际使用场景比这复杂的多,可能很多个页面同时使用某一个组件或者多个组件,该如何考虑实现呢?

共有3个答案

谭仰岳
2023-05-13

缓存其实容易,可以存vex或者localStorage等,判断缓存有数据就不去读接口,这一部可以做到组件内。
需要关注的是什么时候去更新缓存?可以组件内部实现更新缓存的方法(重新调接口),然后在AB 页面去根据业务进行调用

鲁鹤轩
2023-05-13

可以看一下这篇文章,写的非常详细:https://juejin.cn/post/7104635370796482567

荀裕
2023-05-13

为了避免重复请求数据,可以考虑在组件中使用Vuex等状态管理工具,将数据抽离出来,作为全局共享的数据,同时通过 created 钩子函数检查该数据是否已经存在,如果存在直接使用该数据,否则再发起数据请求。这样即使多个页面引用同一个组件,也可以避免多次请求数据的问题。

 类似资料:
  • 问题内容: 我想使用这样的接口: 我用代表语音识别结果的不同类型的对象来实现它。 我的想法是,我只希望比较相同类型的结果。也就是说,如果我创建一个实现的类,我希望方法签名变为: 我觉得我的界面存在设计缺陷,因为到目前为止,我对cloneWithConfidence和返回ResultItem的其他方法的结果使用了非常难看的转换。 有没有更好的办法? 问题答案: 有一个经常见到的成语如下:

  • 问题内容: 该SO讨论提出以下惯用法: 然后允许: 但是,此惯用语不仅允许以上内容,而且还可以编译以下代码: 因此(除非我误解了一些东西),与不那么戏剧性的相比,原始成语并没有买更多的东西: 那么,有没有一种方法可以真正地声明一个接口,以便任何声明要实现的类都具有与自己的类的对象进行比较的方法,而没有上述任何漏洞? 我显然不能将以上内容发表为评论,因此我创建了一个新帖子。 问题答案: 你是正确的:

  • 问题内容: 考虑以下示例: 失败并出现以下错误 为什么呢 生成的方法没有重叠。事实上,这实际上意味着 那里没有重叠。那为什么会失败呢? 如果您想知道我在做什么,并且有更好的解决方案:我有一堆Event和Listener接口,它们几乎与上述类完全一样。我想创建一个适配器和一个适配器接口,为此,我需要使用特定事件扩展所有Listener接口。这可能吗?有一个更好的方法吗? 问题答案: 不,你不能。这是

  • 本文向大家介绍详解如何去除vue项目中的#——History模式,包括了详解如何去除vue项目中的#——History模式的使用技巧和注意事项,需要的朋友参考一下 使用vue-cli搭建的环境,在配置好路由之后,可以看到下面的情况:    但是不难发现#的出现真的很丑陋,并且也不知道这是什么作用? 所以就去Stack Overflow上搜索了,果然还有~  看来Stack Overflow是真的强

  • 在mounted里面请求接口,如下:,两个接口都请求了,但是第一个接口返回的data为null,如果此时刷新一下页面,那么第一个接口返回的data就有值,这是为什么,怎么解决这个问题?第一个接口代码: 第二个接口代码: 这是从上一个页面进入这个页面的时候打印的 这是页面刷新后打印的

  • 我想使用flexbox,它有一些相同宽度的项目。我注意到flexbox将空间均匀分布,而不是空间本身。 例如: 第一项比第二项大得多。如果我有3个项目、4个项目或n个项目,我希望它们都显示在同一行,每个项目的空间相等。 有什么想法吗? http://codepen.io/anon/pen/gbJBqM