在 UniApp 里,setStorage 和 getStorage 属于本地存储 API,能够把数据存于设备本地,在应用关闭后数据依然存在,再次打开应用时可继续使用。下面为你详细介绍它们的特性、使用方法以及经典示例。

1、特性

  1. 数据持久化:应用关闭之后数据仍然存在,下次打开应用时还能读取。
  2. 异步操作setStorage 和 getStorage 均为异步操作,不会阻塞主线程。
  3. 数据类型:存储的数据会被自动转换为字符串,读取时再将字符串转换回对应的数据类型。
  4. 存储限制:不同平台的存储限制有所不同,一般是 10MB 左右。

2、使用方法uni.setStorage(OBJECT)

把数据存储到本地缓存中指定的 key 里,若 key 已存在则会覆盖原有内容,这是一个异步接口。

3、参数说明

  • key:必需,本地缓存中的指定的 key。
  • data:必需,需要存储的内容,支持任何数据类型。
  • success:可选,接口调用成功的回调函数。
  • fail:可选,接口调用失败的回调函数。
  • complete:可选,接口调用结束的回调函数(调用成功、失败都会执行)。

4、经典示例

// 存储数据
uni.setStorage({
    key: 'userInfo',
    data: {
        name: '张三',
        age: 25
    },
    success: function () {
        console.log('数据存储成功');
    },
    fail: function (err) {
        console.log('数据存储失败', err);
    }
});

// 获取数据
uni.getStorage({
    key: 'userInfo',
    success: function (res) {
        console.log('获取数据成功', res.data);
    },
    fail: function (err) {
        console.log('获取数据失败', err);
    }
});

5、代码解释

  • 首先,借助 uni.setStorage 把一个包含 name 和 age 的对象存储到 userInfo 这个 key 里,并且在存储成功或失败时输出相应的日志。
  • 接着,使用 uni.getStorage 从 userInfo 这个 key 中获取数据,若获取成功就输出数据,若失败则输出错误信息。
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐