当前位置:首页 > uni-app

uniapp持久化存储

2026-02-06 14:09:06uni-app

uniapp持久化存储的方法

uniapp提供了多种持久化存储方案,适用于不同场景的需求。以下是常用的几种方法:

本地存储(LocalStorage)

使用uni.setStorageuni.getStorage实现简单的键值对存储,适合小数据量的持久化。

// 存储数据
uni.setStorage({
  key: 'keyName',
  data: 'value',
  success: function() {
    console.log('存储成功');
  }
});

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

同步本地存储

同步方法uni.setStorageSyncuni.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。

uniapp持久化存储

// 写入文件
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左右),不适合存储大量数据。
  • 敏感信息不应直接存储在本地,需加密处理。
  • 不同平台对存储的支持可能略有差异,需测试兼容性。

以上方法可根据具体需求选择,简单数据推荐使用本地存储,复杂数据考虑数据库或文件系统。

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

相关文章

uniapp怎么使用

uniapp怎么使用

安装与开发环境搭建 下载HBuilderX作为开发工具,这是官方推荐的IDE,内置uniapp项目模板和调试工具。安装后通过新建项目选择uniapp模板,支持Vue.js语法。确保Node.js环境已…

uniapp应用市场

uniapp应用市场

uniapp应用市场概述 Uniapp作为跨平台开发框架,支持将代码编译到iOS、Android、Web及各类小程序平台。其应用市场(插件市场)是开发者获取扩展插件、模板、组件的重要资源库,涵盖UI组…

uniapp支付功能怎么实现

uniapp支付功能怎么实现

uniapp支付功能实现方法 准备工作 注册微信支付、支付宝等平台的开发者账号,获取必要的商户ID(mch_id)、API密钥(key)、应用ID(appid)等信息。确保项目已配置好相关支付SDK。…

uniapp gpio

uniapp gpio

在 uniapp 中直接操作 GPIO(通用输入输出)通常需要依赖原生平台的硬件接口,因为 uniapp 本身是基于前端技术的跨平台框架,不直接提供硬件访问能力。以下是实现 GPIO 控制的几种方法:…

甜uniapp

甜uniapp

甜uniapp的定义 甜uniapp并非官方术语,可能是对uniapp开发中“高效、便捷、愉悦”体验的形容,或特定场景下的优化方案。通常指通过技巧、插件或架构设计提升uniapp开发效率和用户体验。…

uniapp删除线

uniapp删除线

在UniApp中添加删除线的方法 使用CSS样式实现删除线 通过CSS的text-decoration属性可以轻松实现删除线效果。在UniApp的页面或组件中,直接为文本元素添加样式类即可: .t…