2025.3.7

在 UniApp 中,持久化存储通常用于保存需要在应用关闭后仍然保留的数据。UniApp 提供了多种方式来实现持久化存储,以下是常见的几种方法:

1. 本地存储 (LocalStorage)

UniApp 提供了 uni.setStorageuni.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.saveFileuni.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 环境中的大量结构化数据存储。
  • 云存储:适用于跨设备的持久化存储需求。

根据具体需求选择合适的持久化存储方式。

posted @ 2025-03-07 23:00  258333  阅读(117)  评论(0)    收藏  举报