uniapp存储数据多
uniapp 存储数据的方法
uniapp 提供了多种数据存储方式,适用于不同场景的需求。以下是常见的几种方法:
本地存储(LocalStorage)
使用 uni.setStorageSync 和 uni.getStorageSync 进行同步存储和读取,适合小量、简单的数据存储。
示例代码:

// 存储数据
uni.setStorageSync('key', 'value');
// 读取数据
let data = uni.getStorageSync('key');
异步本地存储
使用 uni.setStorage 和 uni.getStorage 进行异步操作,避免阻塞主线程。
示例代码:
// 异步存储数据
uni.setStorage({
key: 'key',
data: 'value',
success: function () {
console.log('存储成功');
}
});
// 异步读取数据
uni.getStorage({
key: 'key',
success: function (res) {
console.log(res.data);
}
});
全局变量(globalData)
在 App.vue 中定义全局变量,适合共享数据但生命周期较短。
示例代码:

// App.vue
export default {
globalData: {
userInfo: null
}
}
// 页面中获取
let app = getApp();
console.log(app.globalData.userInfo);
数据库存储(SQLite)
对于复杂数据,可以使用 SQLite 插件或云数据库(如 uniCloud)。
示例代码(需引入 SQLite 插件):
// 打开数据库
let db = plus.sqlite.openDatabase('test.db');
// 创建表
db.executeSql('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT)');
// 插入数据
db.executeSql('INSERT INTO user (name) VALUES (?)', ['张三']);
文件存储
使用 uni.saveFile 和 uni.getFileInfo 存储文件数据,适合大文件或二进制数据。
示例代码:
// 保存文件
uni.saveFile({
tempFilePath: 'temp/file.jpg',
success: function (res) {
console.log(res.savedFilePath);
}
});
// 获取文件信息
uni.getFileInfo({
filePath: 'file.jpg',
success: function (res) {
console.log(res.size);
}
});
选择存储方式的建议
- 临时数据:使用全局变量(
globalData)。 - 简单持久化数据:使用本地存储(
LocalStorage)。 - 复杂结构化数据:使用数据库(SQLite 或 uniCloud)。
- 大文件或二进制数据:使用文件存储。
根据实际需求选择合适的存储方式,避免过度使用单一方法导致性能问题。






