2025.3.7
在 UniApp 中,持久化存储通常用于保存需要在应用关闭后仍然保留的数据。UniApp 提供了多种方式来实现持久化存储,以下是常见的几种方法:
1. 本地存储 (LocalStorage)
UniApp 提供了 uni.setStorage
和 uni.getStorage
等 API 来实现本地存储。这些数据会一直保存在本地,直到用户清除缓存或手动删除。
常用 API:
-
uni.setStorage
:将数据存储在本地缓存中。uni.setStorage({ key: 'keyName', data: 'value', success: function () { console.log('存储成功'); } });
-
uni.setStorageSync
:同步版本,将数据存储在本地缓存中。uni.setStorageSync('keyName', 'value');
-
uni.getStorage
:从本地缓存中获取数据。uni.getStorage({ key: 'keyName', success: function (res) { console.log(res.data); } });
-
uni.getStorageSync
:同步版本,从本地缓存中获取数据。let value = uni.getStorageSync('keyName'); console.log(value);
-
uni.removeStorage
:删除本地缓存中的指定数据。uni.removeStorage({ key: 'keyName', success: function () { console.log('删除成功'); } });
-
uni.removeStorageSync
:同步版本,删除本地缓存中的指定数据。uni.removeStorageSync('keyName');
-
uni.clearStorage
:清除所有本地缓存数据。uni.clearStorage();
-
uni.clearStorageSync
:同步版本,清除所有本地缓存数据。uni.clearStorageSync();
2. 文件存储
如果数据量较大或需要存储复杂的数据结构,可以使用文件存储。UniApp 提供了 uni.saveFile
、uni.getFileInfo
等 API 来操作文件。
常用 API:
-
uni.saveFile
:保存文件到本地。uni.saveFile({ tempFilePath: 'tempFilePath', success: function (res) { console.log('文件保存成功:' + res.savedFilePath); } });
-
uni.getFileInfo
:获取文件信息。uni.getFileInfo({ filePath: 'filePath', success: function (res) { console.log(res.size); } });
3. SQLite 数据库
对于更复杂的持久化需求,可以使用 SQLite 数据库。UniApp 支持通过插件或原生代码来操作 SQLite 数据库。
常用插件:
uni-sqlite
:这是一个 UniApp 插件,可以在应用中使用 SQLite 数据库。
4. IndexedDB
在 H5 环境中,可以使用 IndexedDB
来进行持久化存储。IndexedDB
是一种低级的 API,用于在客户端存储大量结构化数据。
5. 云存储
如果需要跨设备的持久化存储,可以使用云存储服务,如 UniApp 提供的 uniCloud
服务。
总结
- 本地存储:适用于小数据量的持久化存储,简单易用。
- 文件存储:适用于大数据量或复杂数据的存储。
- SQLite 数据库:适用于需要复杂查询和事务的场景。
- IndexedDB:适用于 H5 环境中的大量结构化数据存储。
- 云存储:适用于跨设备的持久化存储需求。
根据具体需求选择合适的持久化存储方式。