当前位置:首页 > uni-app

uniapp持久化存储

2026-03-05 16:04:42uni-app

uniapp持久化存储方法

本地存储(LocalStorage)

使用uni.setStorageuni.getStorage进行数据存储和读取,适合较小数据量的持久化存储。数据以键值对形式保存,关闭应用后依然存在。

// 存储数据
uni.setStorage({
  key: 'key_name',
  data: 'value'
});

// 读取数据
uni.getStorage({
  key: 'key_name',
  success: function(res) {
    console.log(res.data);
  }
});

同步本地存储

同步方法会阻塞当前线程直到操作完成,适合需要立即获取结果的场景。

uniapp持久化存储

try {
  uni.setStorageSync('key_name', 'value');
  const value = uni.getStorageSync('key_name');
} catch (e) {
  // 错误处理
}

数据库存储(SQLite)

对于复杂数据结构,可以使用SQLite数据库。需通过条件编译区分平台,H5端无法直接使用。

uniapp持久化存储

// #ifdef APP-PLUS
const db = plus.sqlite.openDatabase({
  name: 'db_name',
  path: '_doc/test.db'
});
db.executeSql('CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY, name TEXT)');
// #endif

文件系统存储

通过uni.saveFileuni.getFileSystemManagerAPI操作文件系统,适合存储较大数据或二进制文件。

uni.downloadFile({
  url: 'https://example.com/file',
  success: res => {
    uni.saveFile({
      tempFilePath: res.tempFilePath,
      success: savedFile => {
        console.log(savedFile.savedFilePath);
      }
    });
  }
});

全局变量与Vuex

配合持久化存储使用,将Vuex状态通过插件定期写入本地存储。需安装vuex-persistedstate等插件实现自动同步。

import createPersistedState from 'vuex-persistedstate';

const store = new Vuex.Store({
  plugins: [createPersistedState({
    storage: {
      getItem: key => uni.getStorageSync(key),
      setItem: (key, value) => uni.setStorageSync(key, value),
      removeItem: key => uni.removeStorageSync(key)
    }
  })]
});

注意事项

  • 本地存储有大小限制(通常5MB-10MB),超出可能导致写入失败
  • 敏感信息应加密后存储,避免使用持久化存储保存密码等关键数据
  • iOS平台可能自动清理长期未使用的LocalStorage数据
  • 微信小程序端需注意代码包大小限制影响存储空间

标签: 持久uniapp
分享给朋友:

相关文章

uniapp消息推送

uniapp消息推送

uniapp消息推送实现方法 uniapp支持多种消息推送方式,包括uniPush、个推、极光推送等。以下为常见实现方案: uniPush(官方推荐) uniapp官方提供的推送服务,基于DClou…

uniapp多环境配置

uniapp多环境配置

多环境配置的必要性 在UniApp开发中,多环境配置能有效区分开发、测试、生产等不同环境的API地址、密钥等参数,避免手动修改代码导致的错误。 创建环境配置文件 在项目根目录下创建env.js或co…

uniapp 后门

uniapp 后门

关于 uniapp 后门的问题,目前没有权威证据表明 uniapp 官方存在故意植入后门的行为。但作为开发者,需注意以下安全实践: 检查第三方插件和依赖 确保项目中使用的第三方插件来源可靠,定期更新…

uniapp关闭广告

uniapp关闭广告

关闭广告的方法 在UniApp中关闭广告通常涉及以下几个方法,具体操作取决于广告的类型和集成方式。 移除广告模块 检查项目中是否集成了广告SDK或相关组件,如ad、ad-draw等。在pages.j…

uniapp结算页面

uniapp结算页面

uniapp 结算页面实现 页面布局设计 结算页面通常包含商品列表、价格汇总、收货地址和支付方式选择。使用 uni-list 组件展示商品信息,uni-forms 收集用户收货信息,radio-gro…

uniapp推送消息

uniapp推送消息

uniapp推送消息的实现方法 使用uni-push服务 uniapp官方提供了uni-push推送服务,支持iOS和Android平台。需要在manifest.json中配置推送模块,并在DClou…