uniapp数据储存
uniapp 数据存储方式
本地存储(LocalStorage)
适用于存储简单的键值对数据,数据持久化保存,但容量有限(通常5MB左右)。
// 存储数据
uni.setStorageSync('key', 'value');
// 获取数据
let data = uni.getStorageSync('key');
// 移除数据
uni.removeStorageSync('key');
异步本地存储
适合需要处理异步操作的场景,避免阻塞主线程。
uni.setStorage({
key: 'key',
data: 'value',
success: () => console.log('存储成功')
});
全局变量(globalData)
适用于页面间共享数据,但应用关闭后数据消失。
在App.vue中定义:
globalData: { userInfo: null }
在页面中访问:
const app = getApp();
app.globalData.userInfo = {name: 'John'};
数据库存储(SQLite)
适合复杂数据结构或大量数据存储,需插件支持。
安装uni-app的SQLite插件后:
const db = plus.sqlite.openDatabase('myDB.db');
db.executeSql('CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT)');
文件系统存储
适用于存储文件或大型数据(如图片、音频)。
uni.downloadFile({
url: 'https://example.com/image.jpg',
success: (res) => {
uni.saveFile({
tempFilePath: res.tempFilePath,
success: (savedRes) => console.log(savedRes.savedFilePath)
});
}
});
注意事项
- 数据安全:敏感数据避免明文存储,可使用加密库处理。
- 容量限制:LocalStorage和文件存储均有平台限制,需合理规划。
- 兼容性:SQLite和文件API在部分平台可能需额外配置。
选择建议
- 简单配置数据:使用
LocalStorage。 - 临时共享数据:使用
globalData。 - 结构化数据:选择
SQLite或云数据库。 - 大型文件:通过文件API或云存储服务(如uniCloud)。







