一文读懂Uniapp的setStorage、setStorageSync、getStorage以及getStorageSync(附Demo)

前言

将登陆信息存储在本地,后续将相关信息应用在其他的业务
这类功能需要使用到这几个函数

以及 uni.setStorage 和 uni.getStorage 以及 uni.setStorageSync 和 uni.getStorageSync 这两对函数都用于在本地存储数据,但它们之间有一些关键的差异

1. uni.setStorage 和 uni.getStorage

  • uni.setStorage({key, data, success, fail, complete}):将数据异步存储到本地缓存中,可提供成功、失败和完成时的回调函数
  • uni.getStorage({key, success, fail, complete}):从本地缓存中异步获取数据,可提供成功、失败和完成时的回调函数
uni.setStorage({
  key: 'key',
  data: 'value',
  success: function () {
    console.log('数据存储成功');
  },
  fail: function (error) {
    console.log('数据存储失败:', error);
  }
});

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

2. uni.setStorageSync 和 uni.getStorageSync

  • uni.setStorageSync(key, data):将数据同步存储到本地缓存中,即时执行,没有回调函数
  • uni.getStorageSync(key):从本地缓存中同步获取数据,即时执行,没有回调函数
// 存储数据
uni.setStorageSync('key', 'value');

// 获取数据
let data = uni.getStorageSync('key');

3. 比较

同步vs异步回调函数适用场景
1.uni.setStorageSync 和 uni.getStorageSync 是同步方法,会阻塞后续代码的执行,直到操作完成

2.uni.setStorage 和 uni.getStorage 是异步方法,不会阻塞后续代码的执行,而是通过回调函数来处理操作结果
uni.setStorage 和 uni.getStorage 可以提供成功、失败和完成时的回调函数,而同步方法不支持回调函数1.同步方法适用于简单的数据存取,不涉及复杂的异步处理

2.异步方法适用于需要在数据存取完成后执行额外逻辑或需要处理大量数据时

总体Demo:

// 同步存储和获取数据
uni.setStorageSync('syncKey', 'syncValue');
let syncData = uni.getStorageSync('syncKey');
console.log('同步存储和获取数据:', syncData);

// 异步存储和获取数据
uni.setStorage({
  key: 'asyncKey',
  data: 'asyncValue',
  success: function () {
    uni.getStorage({
      key: 'asyncKey',
      success: function (res) {
        console.log('异步存储和获取数据:', res.data);
      },
      fail: function (error) {
        console.log('获取数据失败:', error);
      }
    });
  },
  fail: function (error) {
    console.log('存储数据失败:', error);
  }
});
  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值