uniapp封装本地定时存储(storage.js)
·
uniapp封装本地定时存储
自定义封装uniAPP本地定时存储类storage,超出存储时间限制存储内容失效。
引入:
main.js:import storage from '@/libs/storage' // 本地定时存储 Vue.prototype.storage = new storage()
使用:
存储:this.storage.setItem('items', {a: '', b: ''}, 1*24*60*60) 缓存一天内有效
获取存储:this.storage.getItem('items')
删除指定存储:this.storage.removeItem('items')
清除所有存储:this.storage.clear()
api:
一、设置存储区
| 参数 | 类型 | 描述 | 默认 | 必选 |
|---|---|---|---|---|
| key | String | 数据名称 | ‘’ | 是 |
| value | Object / Array / String / Boolean / Number | 数据名称 | ‘’ | 是 |
| time | Number | 数据内容 | ‘’ | 是 |
setItem(key, value, time = 1 * 60) {
try {
var cacheExpireDate = (new Date() - 1) + time * 1000
var cacheVal = { data: value, exp: cacheExpireDate }
uni.setStorageSync(key, JSON.stringify(cacheVal)) // 存入缓存值
} catch (e) {}
}
二、获取存储
| 参数 | 类型 | 描述 | 默认 | 必选 |
|---|---|---|---|---|
| key | String | 数据名称 | ‘’ | 是 |
getItem(key) {
try {
var cacheVal = uni.getStorageSync(key)
var result = JSON.parse(cacheVal)
var now = new Date() - 1
if (!result) { return null; } // 缓存不存在
if (now > result.exp) { // 缓存过期
uni.removeStorageSync(key)
return ''
}
return result.data ? result.data : {}
} catch (e) {
uni.removeStorageSync(key)
return null
}
}
三、删除指定存储
| 参数 | 类型 | 描述 | 默认 | 必选 |
|---|---|---|---|---|
| key | String | 数据名称 | ‘’ | 是 |
removeItem(key) {
try{
uni.removeStorageSync(key)
}catch(e){
return
}
}
四、清除所有存储
clear() {
try{
uni.clearStorageSync()
}catch(e){
return
}
}
完整代码
/**
* 本地定时存储
*/
export default class storage{
constructor(arg) {}
/**
* 设置存储
* @param {*} key 数据名称
* @param {*} value 数据内容 Object || Array || String || Boolean || Number
* @param {*} time 数据有效期
* @example: this.storage.setItem('items', {a: '', b: ''}, 1*24*60*60) 缓存一天内有效
*/
setItem(key, value, time = 1 * 60) {
try {
var cacheExpireDate = (new Date() - 1) + time * 1000
var cacheVal = { data: value, exp: cacheExpireDate }
uni.setStorageSync(key, JSON.stringify(cacheVal)) // 存入缓存值
} catch (e) {}
}
/**
* 获取存储
* @param {*} key 数据名称
* @example: this.storage.getItem('items')
*/
getItem(key) {
try {
var cacheVal = uni.getStorageSync(key)
var result = JSON.parse(cacheVal)
var now = new Date() - 1
if (!result) { return null; } // 缓存不存在
if (now > result.exp) { // 缓存过期
uni.removeStorageSync(key)
return ''
}
return result.data ? result.data : {}
} catch (e) {
uni.removeStorageSync(key)
return null
}
}
/**
* 删除指定存储数据
* @param {*} key
* @example: this.storage.removeItem('items')
*/
removeItem(key) {
try{
uni.removeStorageSync(key)
}catch(e){
return
}
}
/**
* 删除所有存储数据
* @param {*} key
* @example: this.storage.clear()
*/
clear() {
try{
uni.clearStorageSync()
}catch(e){
return
}
}
}
更多推荐

所有评论(0)