UniApp 中 localStorage 和 sessionStorage的函数有哪些
时间: 2025-05-28 18:47:27 浏览: 13
### 关于 UniApp 中 localStorage 和 sessionStorage 的支持
在标准 Web 开发中,`localStorage` 和 `sessionStorage` 是浏览器提供的本地存储机制,用于保存键值对数据[^1]。然而,在 UniApp 中并未直接使用这些原生 API,而是通过封装的方法实现了类似的本地存储功能。以下是 UniApp 提供的相关函数列表以及其作用说明:
#### 1. **UniApp 对应 `localStorage` 的方法**
UniApp 使用以下方法模拟了 `localStorage` 的行为:
- **`uni.setStorageSync(key, value)`**: 将数据同步存储到本地缓存中指定的 key 上。value 只能是字符串类型,如果是复杂数据结构需先调用 `JSON.stringify(value)` 转换为 JSON 字符串后再存储。
- **`uni.getStorageSync(key)`**: 获取本地缓存中指定 key 对应的内容。返回的是字符串类型的值,如果需要还原成对象或数组,可使用 `JSON.parse(result)` 进行解析。
- **`uni.removeStorageSync(key)`**: 从本地缓存中异步移除指定 key。
- **`uni.clearStorageSync()`**: 清空本地缓存中的所有数据。
以上方法均为同步版本,适用于不需要回调的情况。如果希望以异步方式进行操作,可以分别替换为带回调参数的异步版方法:`uni.setStorage(Object object)`, `uni.getStorage(Object object)`, `uni.removeStorage(Object object)`, `uni.clearStorage(Object object)`[^3]。
#### 2. **UniApp 对应 `sessionStorage` 的替代方案**
严格意义上讲,UniApp 并未单独提供类似于 `sessionStorage` 的接口。但由于 `sessionStorage` 的主要特点是数据仅限于当前会话周期内有效,因此开发者可以通过逻辑控制配合 `uni.setStorageSync/uni.getStorageSync` 实现类似的功能。例如,在应用退出或者页面卸载时手动清理特定 keys 下的数据即可达到近似的 session 效果[^2]。
#### 注意事项
- 所有存储至本地的数据均需注意安全性问题,尤其是敏感信息不应明文暴露;
- 不同平台(H5、小程序等)间存在兼容性和限制条件的不同,请参照官方文档确认具体环境下的表现特性[^3]。
```javascript
// 示例代码演示如何在 UniApp 中模仿 sessionStorage 行为
function setSessionData(key, data){
const now = Date.now();
uni.setStorageSync(`session_${key}`, JSON.stringify({data:data, timestamp:now}));
}
function getSessionData(key){
let rawData = uni.getStorageSync(`session_${key}`);
if(rawData){
let parsedData = JSON.parse(rawData);
// 假设定义超过一天就认为过期并自动清除
if((Date.now()-parsedData.timestamp)<86400000){
return parsedData.data;
}else{
removeSessionData(key);
}
}
return null;
}
function removeSessionData(key){
uni.removeStorageSync(`session_${key}`);
}
```
阅读全文
相关推荐


















