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();
注意事项:
- 同步操作会阻塞当前线程,直到存储完成
- 单个 key 允许存储的最大数据长度约为 1MB
- 本地数据存储是持久化的,除非手动清除或卸载应用
- 在 H5 端,数据存储在浏览器的 localStorage 中
错误处理:
try {
uni.setStorageSync('key', 'value');
} catch (e) {
console.error('存储失败:', e);
}
如果需要异步存储,可以使用 uni.setStorage(),它不会阻塞当前线程。

