Help you cache GET request when using axios.
npm install axios-cache-plugin --save
or
yarn add axios-cache-plugin
Add cache feature to axios
import axios from 'axios'
import wrapper from 'axios-cache-plugin'
let http = wrapper(axios, {
maxCacheSize: 15
})
export default http
or axios instance
import axios from 'axios'
import wrapper from 'axios-cache-plugin'
let http = axios.create({
withCredentials: false
})
let httpProxy = wrapper(http, {
maxCacheSize: 15
})
export default httpProxy
By default, axios-cache-plugin
won't cache any GET request unless you add filters.
Filters are Regexps, only the GET request whose url hit the filter reg will be cached.
example:
import axios from 'axios'
import wrapper from 'axios-cache-plugin'
let http = wrapper(axios, {
maxCacheSize: 15
})
http.__addFilter(/getItemInfoByIdsWithSecKill/)
http({
url: 'http://example.com/item/getItemInfoByIdsWithSecKill',
method: 'get',
params: {
param: JSON.stringify({
debug_port: 'sandbox1'
})
}
})
// now the request http://example.com/item/getItemInfoByIdsWithSecKill?param=%7B%22debug_port%22:%22sandbox1%22%7D has been cached
Remove filter.
Clear cache.
Options are optional.
let http = wrapper(axios, {
maxCacheSize: 15, // cached items amounts. if the number of cached items exceeds, the earliest cached item will be deleted. default number is 15.
ttl: 60000, // time to live. if you set this option the cached item will be auto deleted after ttl(ms).
excludeHeaders: true // should headers be ignored in cache key, helpful for ignoring tracking headers
})
MIT