uniapp本地储存
uniapp本地存储方法
uniapp提供了多种本地存储方案,适用于不同场景的数据持久化需求。以下是常用的本地存储方法:
同步存储与读取
使用uni.setStorageSync和uni.getStorageSync进行同步操作,适合少量关键数据的存储:
// 存储数据
uni.setStorageSync('key', 'value');
// 读取数据
let data = uni.getStorageSync('key');
// 删除指定key
uni.removeStorageSync('key');
// 清空所有数据
uni.clearStorageSync();
异步存储与读取
异步接口更适合大量数据存储,避免阻塞主线程:
// 存储数据
uni.setStorage({
key: 'key',
data: 'value',
success: function() {
console.log('存储成功');
}
});
// 读取数据
uni.getStorage({
key: 'key',
success: function(res) {
console.log(res.data);
}
});
本地文件存储
对于较大数据或文件,可使用文件系统API:
// 写入文件
plus.io.requestFileSystem(plus.io.PRIVATE_WWW, function(fs) {
fs.root.getFile('test.txt', {create: true}, function(fileEntry) {
fileEntry.createWriter(function(writer) {
writer.write('文件内容');
});
});
});
// 读取文件
plus.io.requestFileSystem(plus.io.PRIVATE_WWW, function(fs) {
fs.root.getFile('test.txt', {}, function(fileEntry) {
fileEntry.file(function(file) {
let reader = new plus.io.FileReader();
reader.readAsText(file);
reader.onloadend = function(e) {
console.log(this.result);
}
});
});
});
注意事项
- 同步API会阻塞后续代码执行,建议在简单场景使用
- 存储大小限制通常为5-10MB,不同平台可能有差异
- 敏感信息建议加密后存储
- H5端使用localStorage实现,App端使用原生存储
扩展方案
对于更复杂的需求:
- SQLite数据库插件:适合结构化数据存储
- IndexedDB:H5端的大容量存储方案
- 第三方缓存库:如lru-cache等内存缓存方案







