日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue依赖缓存_Vue SSR服务端渲染之数据缓存

發布時間:2024/6/1 vue 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue依赖缓存_Vue SSR服务端渲染之数据缓存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當咱們在作vue的服務器端渲染時,可能會碰到各類各樣的坑,內存泄露就是其中的一種。固然,致使內存泄露的緣由有不少,不合理使用Axios也是其中一種,那下面我給你們介紹一下如何有效的避免請求中的內存泄露。vue

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

npm install lru-cache --dev

2. api 配置文件

config-server.jsnode

var LRU = require('lru-cache')

let api

if (process.__API__) {

api = process.__API__

} else {

api = process.__API__ = {

api: 'http://localhost:8181/api/',

//配置緩存

cached: LRU({

max: 1000,

maxAge: 1000 * 60 * 15

}),

cachedItem: {}

}

}

module.exports = api

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 端和瀏覽器端分開封裝ios

import config from './config-server.js'

const key = md5(url + JSON.stringify(data))

經過 url 和參數, 生成一個惟一的 keyajax

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 返回的數據, 寫入緩存npm

注意:這個 api 會處理全部的請求, 可是不少請求實際上是不須要緩存的, 因此須要緩存能夠在傳過來的 data 里, 添加個 cache: true, 如:axios

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

不須要緩存的直接按正常傳值便可api

總結

以上是生活随笔為你收集整理的vue依赖缓存_Vue SSR服务端渲染之数据缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。