• 数据缓存

    • uni.setStorage 缓存 异步 覆盖 原来key对应的内容
    • uni.setStorageSync 缓存 同步 覆盖 原来key对应的内容
    • uni.getStorage 获取 异步 原来key对应的内容
    • uni.getStorageSync 获取 同步 原来key对应的内容
    • uni.removeStorage 移除 异步 缓存内容
    • uni.removeStorageSync 移除 异步 缓存内容

      1. [uni.clearStorage()](https://uniapp.dcloud.io/api/storage/storage?id=clearstorage) 清理本地数据缓存。<br /> [uni.clearStorageSync()](https://uniapp.dcloud.io/api/storage/storage?id=clearstoragesync) 同步 清理本地数据缓存。

数据缓存

有些数据我们只是想存在本地,而不是存在数据库,所以就需要数据缓存。
在这里只介绍组用法。

uni.setStorage

将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口

image.png
查看效果
image.png

小程序 同样可以看到效果
image.png

uni.setStorageSync

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

image.png

uni.getStorage

从本地缓存中异步获取指定 key 对应的内容。
image.png
打印显示 100

uni.getStorageSync

从本地缓存中同步获取指定 key 对应的内容。

image.png

uni.removeStorage

从本地缓存中异步移除指定 key。

image.png

uni.removeStorageSync

从本地缓存中同步移除指定 key。

image.png

uni.clearStorage()

清理本地数据缓存。

uni.clearStorageSync()

同步清理本地数据缓存。

image.png

注意

uni-app的Storage在不同端的实现不同:

  • H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理
  • App端为原生的plus.storage,无大小限制,不是缓存,是持久化的
  • 各个小程序端为其自带的storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
  • 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
  • 支付宝小程序单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB。
  • 百度、字节跳动小程序文档未说明大小限制
  • 非App平台清空Storage会导致uni.getSystemInfo获取到的deviceId改变

除此之外,其他数据存储方案:

  • H5端还支持websql、indexedDB、sessionStorage
  • App端还支持SQLiteIO文件等本地存储方案。