uniapp uni.setstoragesync的使用方法

在uniapp中使用uni.setStorageSync存储数据时,如何正确设置key和value?如果存储对象或数组是否需要先转换为字符串?调用这个方法是否会覆盖已有的key值?在什么情况下会存储失败?

2 回复

uni.setStorageSync(key, data) 是同步存储数据的方法。
示例:

uni.setStorageSync('token', 'abc123');

参数:

  • key:存储的键名
  • data:要存储的数据(支持对象、数组等)

注意:同步方法会阻塞当前任务,数据量较大时建议用异步方法 uni.setStorage


uni.setStorageSync 是 uni-app 中用于同步存储数据的 API,将数据保存在本地缓存中。适用于需要立即使用存储结果的场景。

语法:

uni.setStorageSync(key, data)

参数说明:

  • key(字符串):存储数据的键名
  • data(任意类型):要存储的数据,支持字符串、数字、对象、数组等

使用示例:

// 存储字符串
uni.setStorageSync('username', '张三');

// 存储对象
const userInfo = {
  name: '李四',
  age: 25,
  city: '北京'
};
uni.setStorageSync('userInfo', userInfo);

// 存储数组
uni.setStorageSync('fruits', ['苹果', '香蕉', '橙子']);

读取数据:

// 读取存储的数据
const username = uni.getStorageSync('username');
const userInfo = uni.getStorageSync('userInfo');
const fruits = uni.getStorageSync('fruits');

console.log(username);  // 输出:张三
console.log(userInfo);  // 输出:{name: "李四", age: 25, city: "北京"}
console.log(fruits);    // 输出:["苹果", "香蕉", "橙子"]

删除数据:

// 删除指定键名的数据
uni.removeStorageSync('username');

// 清空所有本地缓存
uni.clearStorageSync();

注意事项:

  1. 同步操作会阻塞当前线程,直到存储完成
  2. 单个 key 允许存储的最大数据长度约为 1MB
  3. 本地数据存储是持久化的,除非手动清除或卸载应用
  4. 在 H5 端,数据存储在浏览器的 localStorage 中

错误处理:

try {
  uni.setStorageSync('key', 'value');
} catch (e) {
  console.error('存储失败:', e);
}

如果需要异步存储,可以使用 uni.setStorage(),它不会阻塞当前线程。

回到顶部