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:

一、设置存储区

参数类型描述默认必选
keyString数据名称‘’是
valueObject / Array / String / Boolean / Number数据名称‘’是
timeNumber数据内容‘’是
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) {}
}

二、获取存储

参数类型描述默认必选
keyString数据名称‘’是
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
	}
}

三、删除指定存储

参数类型描述默认必选
keyString数据名称‘’是
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
	    }
	}
}

更多推荐