uni-app提供了数据缓存方法:
操作 | 同步 | 异步 |
增加 | uni.setStorageSync('key') | uni.setStorage({key:'',success:(){}}) |
删除 | uni.removeStorageSync('key') | uni.removeStorage({key:'',success:(){}}) |
查找 | uni.getStorageSync('key') | uni.getStorage({key:'',success:(){}}) |
清空 | uni.clearStorageSync() | uni.clearStorage() |
说明:这种存储方式相当于H5的localStorage,可长期保存数据。
值得一提的是:
uni-app的Storage在不同端的实现不同:
- H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理
- App端为原生的plus.storage,无大小限制,不是缓存,是持久化的
- 各个小程序端为其自带的storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
- 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
- 支付宝小程序单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB。
- 百度、字节跳动小程序文档未说明大小限制
- 非App平台清空Storage会导致uni.getSystemInfo获取到的deviceId改变