uniapp持久化存储
uniapp持久化存储的方法
uniapp提供了多种持久化存储方案,适用于不同场景的需求。以下是常用的几种方法:
本地存储(LocalStorage)
使用uni.setStorage和uni.getStorage实现简单的键值对存储,适合小数据量的持久化。

// 存储数据
uni.setStorage({
key: 'keyName',
data: 'value',
success: function() {
console.log('存储成功');
}
});
// 获取数据
uni.getStorage({
key: 'keyName',
success: function(res) {
console.log(res.data);
}
});
同步本地存储
同步方法uni.setStorageSync和uni.getStorageSync适合需要立即获取存储结果的场景。

// 同步存储
try {
uni.setStorageSync('keyName', 'value');
} catch (e) {
console.error(e);
}
// 同步获取
try {
const value = uni.getStorageSync('keyName');
console.log(value);
} catch (e) {
console.error(e);
}
数据库存储(SQLite)
对于复杂数据结构,可以使用SQLite数据库。需在manifest.json中配置。
// manifest.json配置
"app-plus": {
"modules": {
"SQLite": {}
}
}
// 使用SQLite
const db = plus.sqlite.openDatabase({
name: 'testDB',
path: '_doc/test.db'
});
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS testTable (id INTEGER PRIMARY KEY, name TEXT)');
tx.executeSql('INSERT INTO testTable (name) VALUES (?)', ['testName']);
});
文件存储
对于大型文件或需要长期保存的数据,可以使用文件系统API。
// 写入文件
plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fs) {
fs.root.getFile('test.txt', {create: true}, function(fileEntry) {
fileEntry.createWriter(function(writer) {
writer.write('文件内容');
});
});
});
// 读取文件
plus.io.resolveLocalFileSystemURL('_doc/test.txt', function(entry) {
entry.file(function(file) {
const reader = new plus.io.FileReader();
reader.onloadend = function(e) {
console.log(this.result);
};
reader.readAsText(file);
});
});
注意事项
- 本地存储有大小限制(通常5MB左右),不适合存储大量数据。
- 敏感信息不应直接存储在本地,需加密处理。
- 不同平台对存储的支持可能略有差异,需测试兼容性。
以上方法可根据具体需求选择,简单数据推荐使用本地存储,复杂数据考虑数据库或文件系统。





