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

发布于:2024-04-22 ⋅ 阅读:(211) ⋅ 点赞:(0)

前言

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

以及 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);
  }
});

网站公告

今日签到

点亮在社区的每一天
去签到