当前位置:首页 > 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是一款基于Vue.js的跨平台开发框架,支持一次开发,多端部署。开发者可以通过编写一套代码,发布到iOS、Android、Web以及各种小程序平台(如微信、支付宝、百…

uniapp极光推送

uniapp极光推送

uniapp极光推送集成步骤 准备工作 注册极光推送开发者账号,创建应用获取AppKey。确保uniapp项目已配置好原生插件支持。 安装插件 在uniapp项目manifest.json文件中,选…

引擎uniapp

引擎uniapp

uniapp 引擎概述 uniapp 是一个基于 Vue.js 的跨平台开发框架,允许开发者使用单一代码库构建多端应用(如 iOS、Android、Web、小程序等)。其核心引擎通过条件编译和运行时适…

uniapp有用

uniapp有用

Uniapp 的优势 Uniapp 是一款基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布,适用于 iOS、Android、Web、小程序等多个平台。其核心优势包括: 跨平台兼容性:…

uniapp 摇骰子

uniapp 摇骰子

uniapp 摇骰子实现方法 页面布局 在 pages 目录下创建骰子页面(如 dice.vue),使用 view 和 image 组件构建骰子界面。骰子图片可通过静态资源或网络地址加载。 <…

uniapp 字体设置

uniapp 字体设置

uniapp 字体设置方法 uniapp 中设置字体可以通过以下几种方式实现,适用于不同场景和需求。 全局字体设置 在 App.vue 文件中通过样式定义全局字体,确保所有页面继承该字体设置。 &…