uniApp缓存
uniApp中内置缓存机制
在H5页面,缓存到LocalStorage中,小程序缓存到Storage
封装storage.js
/** * 判断字符串是否是json字符串 * 判断条件 1. 排除null可能性 2. 确保数据是对象或数组 * @param str 数据 * @returns Boolean */ const isJsonString = str => { // 判断字符串是否是json字符串 try { const toObj = JSON.parse(str); if (toObj && typeof toObj === 'object') { return true } } catch {} return false } export default { set(name, value) { if (value && typeof value == 'object') { //设置json缓存数据 uni.setStorageSync(name, JSON.stringify(value)); } else { //设置缓存数据 uni.setStorageSync(name, value); } }, get(name) { //获取缓存数据 var data = uni.getStorageSync(name); if (data) { if (isJsonString(data)) { //json字符串转对象 return JSON.parse(data); } return data; } return null; }, remove(name) { // 清除某项缓存 uni.removeStorageSync(name); }, clear() { // 清空缓存 uni.clearStorageSync(); } }
引入模块 main.js
import storage from '@/static/js/storage.js';
Vue.prototype.storage=storage;
在页面使用
this.storage.set('name','12312312'); // 缓存字符串 var obj = {name:'asd',type:'1'} this.storage.set('nameobj',obj) //缓存对象 console.log(this.storage.get('name')) //12312312 console.log(this.storage.get('nameobj')) //{name:'asd',type:'1'} this.storage.remove('name') //清除缓存name this.storage.clear() //清除所有缓存