加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

详解Vue2 SSR 缓存 Api 数据

发布时间:2020-12-17 02:43:00 所属栏目:百科 来源:网络整理
导读:本文介绍了Vue2 SSR 缓存 Api 数据,分享给大家,具体如下: 1. 安装缓存依赖: lru-cache 2. api 配置文件 config-server.js let api if (process. API ) { api = process. API } else { api = process. API = { api: 'http://localhost:8080/api/',cached:

本文介绍了Vue2 SSR 缓存 Api 数据,分享给大家,具体如下:

1. 安装缓存依赖: lru-cache

2. api 配置文件

config-server.js

let api
if (process.API) {
api = process.API
} else {
api = process.API = {
api: 'http://localhost:8080/api/',cached: LRU({
max: 1000,maxAge: 1000 60 15
}),cachedItem: {}
}
}

module.exports = api

配置下lru-cache

3. 封装下 api

export default {
post(url,data) {
const key = md5(url + JSON.stringify(data))
if (config.cached && config.cached.has(key)) {
return Promise.resolve(config.cached.get(key))
}
return axios({
method: 'post',url: config.api + url,data: qs.stringify(data),// 其他配置
}).then(res => {
if (config.cached && data.cache) config.cached.set(key,res)
return res
})
}
}

ajax 库我们用axios,因为axios在 nodejs 和 浏览器都可以使用

并且将 node 端和浏览器端分开封装

通过 url 和参数,生成一个唯一的 key

判断下是不是开启了缓存,并且接口指定缓存的话,将 api 返回的数据,写入缓存

注意:

这个 api 会处理所有的请求,但是很多请求其实是不需要缓存的,所以需要缓存可以在传过来的 data 里,添加个 cache: true,如:

不需要缓存的直接按正常传值即可

当然这里标记是不是要缓存的方法有很多,不一定要用这一种

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读