uni-app 中的 Storage 同浏览器的 localstorage

同步存储

setStorageSync

设置数据

  1. try {
  2. uni.setStorageSync('storage_key', 'hello');
  3. } catch (e) {
  4. // error
  5. }

getStorageSync

获取数据

  1. try {
  2. const value = uni.getStorageSync('storage_key');
  3. if (value) {
  4. console.log(value);
  5. }
  6. } catch (e) {
  7. // error
  8. }

removeStorageSync

删除数据

  1. try {
  2. uni.removeStorageSync('storage_key');
  3. } catch (e) {
  4. // error
  5. }

clearStorageSync

清空数据

  1. try {
  2. uni.clearStorageSync();
  3. } catch (e) {
  4. // error
  5. }

getStorageInfoSync

获取当前 storage 的相关信息

  1. try {
  2. const res = uni.getStorageInfoSync();
  3. console.log(res.keys);
  4. console.log(res.currentSize);
  5. console.log(res.limitSize);
  6. } catch (e) {
  7. // error
  8. }

异步存储

setStorage

设置数据

  1. uni.setStorage({
  2. key: 'storage_key',
  3. data: 'hello',
  4. success: function () {
  5. console.log('success');
  6. }
  7. });

getStorage

获取数据

  1. uni.getStorage({
  2. key: 'storage_key',
  3. success: function (res) {
  4. console.log(res.data);
  5. }
  6. });

removeStorage

删除数据

  1. uni.removeStorage({
  2. key: 'storage_key',
  3. success: function (res) {
  4. console.log('success');
  5. }
  6. });

clearStorage

清空数据

  1. uni.clearStorage();

getStorageInfo

获取当前 storage 的相关信息

  1. uni.getStorageInfo({
  2. success: function (res) {
  3. console.log(res.keys);
  4. console.log(res.currentSize);
  5. console.log(res.limitSize);
  6. }
  7. });

存储类的封装

由于正常使用的时候,并不需要用所有的 API,因此将最常用的几个 API 做了一层封装,需要用到其他 API 的时候再添加进去。

library/storage.js

  1. class Storage {
  2. constructor () {}
  3. get (key) {
  4. return uni.getStorageSync(key);
  5. }
  6. set (key, value) {
  7. uni.setStorageSync(key, value);
  8. }
  9. remove (key) {
  10. uni.removeStorageSync(key);
  11. }
  12. clear () {
  13. uni.clearStorageSync();
  14. }
  15. }
  16. export default new Storage()

main.js

  1. import storage from './library/storage'
  2. Vue.prototype.storage = storage

在组件中的使用:

  1. this.storage.get('key');
  2. this.storage.set('key', 'value');
  3. this.storage.remove('key');
  4. this.storage.clear();

参考资料