当前位置:首页 > 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);
  }
});

同步本地存储

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

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

数据库存储(SQLite)

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

// #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 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp倒计时

uniapp倒计时

uniapp倒计时的实现方法 在uniapp中实现倒计时功能可以通过多种方式完成,以下是几种常见的实现方法: 使用setInterval实现基础倒计时 通过JavaScript的setInterva…

uniapp实现支付功能

uniapp实现支付功能

支付功能实现概述 在UniApp中实现支付功能通常需要对接第三方支付平台(如微信支付、支付宝支付等)。以下是基于微信支付和支付宝支付的通用实现流程。 微信支付实现步骤 1. 配置支付权限 在微信开放…

uniapp使用axios无法请求

uniapp使用axios无法请求

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

丸子uniapp

丸子uniapp

丸子UniApp简介 丸子UniApp是一个基于UniApp框架开发的移动应用解决方案,通常用于快速构建跨平台应用(如微信小程序、H5、Android/iOS等)。其核心特点是利用UniApp的“一次…

uniapp 画板

uniapp 画板

uniapp 实现画板功能的方法 在 uniapp 中实现画板功能,可以通过 canvas 组件结合触摸事件来完成。以下是一个基本的实现方案: 基本画板实现 在 template 中添加 canv…