uniapp setStorageSync如何使用

在uniapp中使用setStorageSync存储数据时,发现同步存储有时会失败,但控制台没有报错信息。请问正确的使用方法是什么?是否需要特殊配置?比如存储对象或数组时是否需要先转为JSON字符串?希望了解具体的参数格式和常见问题排查方法。

2 回复

uni.setStorageSync('key', 'value') 用于同步存储数据到本地。例如:uni.setStorageSync('name', '张三')。读取用 uni.getStorageSync('key')。注意:同步方法会阻塞,数据量大时慎用。


setStorageSync 是 uni-app 中用于同步存储数据的 API,将数据保存在本地缓存中。它属于同步操作,会阻塞后续代码执行直到存储完成。

基本语法

uni.setStorageSync(key, data)

参数说明

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

使用示例

1. 存储字符串

uni.setStorageSync('username', '张三')

2. 存储对象

const userInfo = {
  name: '李四',
  age: 25,
  city: '北京'
}
uni.setStorageSync('userInfo', userInfo)

3. 存储数组

const cartList = ['商品A', '商品B', '商品C']
uni.setStorageSync('shoppingCart', cartList)

读取数据

使用 getStorageSync 读取:

const username = uni.getStorageSync('username')
const userInfo = uni.getStorageSync('userInfo')
console.log(username) // 输出:张三

注意事项

  1. 同步特性:会阻塞后续代码,适合小数据量存储
  2. 数据大小:单个 key 允许存储的最大数据长度为 1MB
  3. 异常处理:使用 try-catch 捕获可能的错误
try {
  uni.setStorageSync('key', 'data')
} catch (e) {
  console.error('存储失败:', e)
}

异步版本

如需异步操作,可使用 setStorage

uni.setStorage({
  key: 'username',
  data: '王五',
  success: function() {
    console.log('存储成功')
  }
})

这个 API 常用于保存用户登录状态、应用配置等需要持久化的数据。

回到顶部