当前位置:首页 > uni-app

uniapp持久化存储

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

uniapp持久化存储的方法

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

本地存储(LocalStorage)

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

uniapp持久化存储

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

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

同步本地存储

同步方法uni.setStorageSyncuni.getStorageSync适合需要立即获取存储结果的场景。

uniapp持久化存储

// 同步存储
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。

// 写入文件
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 推送

uniapp 推送实现方法 uniapp 推送功能可以通过多种方式实现,主要包括使用第三方推送服务、原生插件或云服务。以下是几种常见的实现方案: 使用 UniPush 服务 UniPush 是 D…

uniapp应用市场

uniapp应用市场

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

uniapp实名认证

uniapp实名认证

uniapp实名认证实现方法 使用uniCloud实名认证插件 uniapp官方提供了uniCloud的实名认证插件,可快速集成到项目中。插件支持身份证识别、活体检测等功能,需在uniCloud控制台…

uniapp使用axios无法请求

uniapp使用axios无法请求

uniapp中使用axios请求问题解决方案 在uniapp中使用axios可能会遇到跨域、请求失败或兼容性问题。以下是常见原因及解决方法: 检查axios安装与引入 确保已正确安装axios:…

任务 uniapp

任务 uniapp

uniapp 简介 Uniapp 是一款基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,开发者可以通过一套代码适配多个…

uniapp擎

uniapp擎

uniapp 引擎简介 uniapp 是一个基于 Vue.js 的开发框架,允许开发者使用一套代码同时构建跨平台应用(如 iOS、Android、H5、小程序等)。其核心引擎负责将 Vue 语法转换为…