You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.1 KiB

/**
* 缓存操作
*
*/
import config from '@/config'
/**
* 获取缓存 key
*/
function _key(key) {
return `${config.prefix}${key}`
}
/**
* 获取缓存时间 key
*/
function _expKey(key) {
return `${config.prefix}${key}_exptime`
}
/**
* 获取缓存
*
* key 键名
* def 为空时默认数据
*/
export function get(key, def = null) {
const value = uni.getStorageSync(_key(key))
const exptime = Number(uni.getStorageSync(_expKey(key)))
if (!exptime || exptime > new Date().getTime()) {
return value || def
}
return def
}
/**
* 设置缓存
*
* key 键名
* value 键值
* sec 缓存时间
*/
export function set(key, value, sec = 0) {
uni.setStorageSync(_key(key), value)
if (sec > 0) {
uni.setStorageSync(_expKey(key), new Date().getTime() + sec * 1000)
} else {
uni.removeStorageSync(_expKey(key))
}
}
/**
* 移除缓存
*
* key 键名
*/
export function remove(key) {
uni.removeStorageSync(_key(key))
uni.removeStorageSync(_expKey(key))
}
/**
* 清空缓存
*/
export function clear() {
uni.clearStorageSync()
}
export default { get, set, remove, clear }