目录
一、uni.setStorage(Object)
二、uni.setStorageSync(Key, Data)
三、使用
四、uni.getStorage(OBJECT)
五、uni.getStorageInfo(OBJECT)
一、uni.setStorage(Object)
将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。
uni.setStorage({key: 'storage_key',data: 'hello',success: function () {console.log('success');}
});
二、uni.setStorageSync(Key, Data)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
uni.setStorageSync('storage_key', 'hello');
就写法看,同步接口用起来方便,跟js原生存储没两样,存键值对。而异步接口则是可以在存取数据后接回调。
三、使用
uni.setStorage({key:'ghui',data:'我系渣渣辉',success() {uni.showToast({title:'储存成功'});}
});let ghui = uni.getStorage({key:'ghui'
})let GHUI = uni.getStorageSync('ghui');console.log(ghui,GHUI);
控制台结果是这样:
后来我改了一下:
uni.getStorage({key:'ghui',success(res) {console.log(res);}
})
就是说,异步接口取缓存返回的结果,只能够在成功回调中使用,特点是拿到缓存数据后不用等待不相干的逻辑执行完,就直接执行相关逻辑,更快,但是写起来层层嵌套、不美观。回想第一次控制台打印的promise,我仿佛想到了什么。
uni.getStorage({key:'ghui',
}).then(res => {console.log(res);
})
果然,是可以的,不过取到的是一个数组,数据存在第二项
这样的话,就可以避免层层嵌套了。而同步接口,除了写起来方便之外,他可以赋值成一个变量,用起来也方便,而且又是同步执行,不用考虑缓存没取到就执行后面逻辑问题,用来了跟原生一样,就不多写了,言多必失。
四、uni.getStorage(OBJECT)
uni.getStorage({key: 'storage_key',success: function (res) {console.log(res.data);}
});
五、uni.getStorageInfo(OBJECT)
uni.getStorageSync('storage_key');