uniapp本地存储数据
时间: 2025-03-11 13:28:03 浏览: 54
### UniApp 中的本地存储方法
#### 存储接口概述
在UniApp中,开发者可以利用多种API来完成本地数据的存取工作。这些功能不仅能够满足不同场景下的需求,还提供了同步与异步两种调用模式供选择[^1]。
#### 同步方式的数据存取
对于不需要考虑回调函数执行顺序的情况,可以直接采用`uni.setStorageSync()`和`uni.getStorageSync()`这样的同步方法快速实现键值对形式的小量数据保存与读回操作[^4]:
```javascript
// 设置本地缓存中的指定 key 的内容为 value
uni.setStorageSync('exampleKey', 'exampleValue');
// 获取本地缓存中 exampleKey 对应的内容并打印出来
console.log(uni.getStorageSync('exampleKey')); // 输出: exampleValue
```
#### 异步方式的数据存取
当面对更复杂的业务逻辑或者希望优化用户体验时,则推荐使用带有回调参数的版本如`uni.setStorage(Object object)` 和 `uni.getStorage(Object object)` 来处理可能存在的并发问题以及提供更好的错误捕获能力[^2]:
```javascript
// 异步设置本地缓存中的指定 key 的内容为 value, 并通过 success 回调确认结果
uni.setStorage({
key: 'asyncExample',
data: 'asyncData',
success(res) {
console.log(`成功设置了 ${res.key}`);
}
});
// 异步获取本地缓存中 asyncExample 对应的内容并通过 complete 处理最终状态
uni.getStorage({
key: 'asyncExample',
complete(res) {
if (res.errMsg === "getStorage:ok") {
console.log(`从本地取得的数据是:${res.data}`);
} else {
console.error("未能正确获得数据");
}
}
});
```
#### 清除特定或全部缓存项
除了上述基本增删改查外,有时也需要清理不再需要的信息以节省空间或是重置整个应用的状态,在这种情况下就可以借助于`removeStorageSync(String key)` 或者 `clearStorage()` 方法[^5]:
```javascript
try {
// 移除名为 storage_key 的单个项目
uni.removeStorageSync('storage_key');
} catch(e){
console.warn("移除失败", e);
}
// 清空所有已有的本地储存记录
uni.clearStorage();
```
#### 性能考量
值得注意的是,在设计应用程序架构之初就应该充分考虑到哪些数据适合长期驻留于设备端,并且要合理规划每次访问频率以免造成不必要的资源浪费;另外也要注意保护用户的隐私安全,遵循相关法律法规的要求[^3]。
阅读全文
相关推荐


















