国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解Vue2 SSR 緩存 Api 數據

2019-11-19 14:53:49
字體:
來源:轉載
供稿:網友

本文介紹了Vue2 SSR 緩存 Api 數據,分享給大家,具體如下:

1. 安裝緩存依賴: lru-cache

npm install lru-cache --dev

2. api 配置文件

config-server.js

var LRU = require('lru-cache')let apiif (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

import axios from 'axios'import qs from 'qs'import md5 from 'md5'import config from './config-server.js'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 端和瀏覽器端分開封裝

import config from './config-server.js'
const key = md5(url + JSON.stringify(data))

通過 url 和參數, 生成一個唯一的 key

if (config.cached && config.cached.has(key)) {  return Promise.resolve(config.cached.get(key))}
if (config.cached && data.cache) config.cached.set(key, res)

判斷下是不是開啟了緩存, 并且接口指定緩存的話, 將 api 返回的數據, 寫入緩存

注意:

這個 api 會處理所有的請求, 但是很多請求其實是不需要緩存的, 所以需要緩存可以在傳過來的 data 里, 添加個 cache: true, 如:

api.post('/api/test', {a: 1, b:2, cache: true})

不需要緩存的直接按正常傳值即可

當然這里標記是不是要緩存的方法有很多, 不一定要用這一種

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 容城县| 高邮市| 沙坪坝区| 新密市| 正定县| 蛟河市| 文登市| 佛坪县| 西吉县| 新竹市| 乌兰察布市| 东丽区| 津南区| 临武县| 通榆县| 杭锦旗| 海晏县| 苍山县| 玉林市| 古浪县| 调兵山市| 天气| 武陟县| 西华县| 桐庐县| 玉环县| 丰县| 福建省| 晋城| 八宿县| 信阳市| 抚顺县| 五寨县| 福泉市| 昌图县| 吴江市| 定州市| 台北县| 资中县| 桑日县| 樟树市|