当前位置: 首页 > news >正文

关于uniapp使用pinia持久化配置兼容问题

import { defineStore } from 'pinia';
import { ref } from 'vue';
// 定义 Store
export const useMembersStore = defineStore('members', () => {


  // 状态
  const memberInfo = ref({})
  
  // actions
  const saveMemberInfo = (info: any) => {
    memberInfo.value = info
  }
  
  const clearMemberInfo = () => {
    memberInfo.value = {}
  }

  return {
    memberInfo,
    saveMemberInfo,
    clearMemberInfo
  }
},
{
  persist: {
    key: 'memberInfo',
    storage: {
      getItem(key) {
        return uni.getStorageSync(key) || null
      },
      setItem(key, value) {
        uni.setStorageSync(key, value)
      }
    }
  }
})

进行持久化配置,使用小程序uni兼容

在实例导出文件index.ts中

import { createPinia } from 'pinia';
import persist from 'pinia-plugin-persistedstate';
// 创建pinia实例
const pinia = createPinia();

// 使用持久化插件
pinia.use(persist);

export default pinia;
//模块统一导出
export * from './modules/members';

用的是pinia-plugin-persistedstate 持久化插件,因为它缺少两个依赖项

destr和deep-pick-omit,导致我一直报错

安装后

npm install deep-pick-omit


npm install destr

完美解决!!!

原因:

  • 依赖关系说明:
  • pinia-plugin-persistedstate 插件依赖于 destr 和 deep-pick-omit 这两个包
  • destr 用于安全地解析存储的数据(比如从 localStorage 读取的 JSON 字符串)
  • deep-pick-omit 用于处理深层对象的属性选择(比如选择性持久化 store 中的某些字段)
  • 为什么会出错:
  • 在新版本的打包工具中(如 Vite),所有依赖需要明确声明
  • 虽然 pinia-plugin-persistedstate 在其 package.json 中声明了这些依赖
  • 但在 UniApp 的构建环境中,这些间接依赖可能没有被正确解析和安装
  • 解决方案有效的原因:
  • 通过手动安装这两个依赖,我们确保了它们在项目的 node_modules 中可用
  • 打包工具现在可以找到并正确打包这些依赖
  • 这让 Pinia 的持久化插件能够正常工作

相关文章:

  • 27、深度学习-自学之路-NLP自然语言处理-做一个简单的项目识别一组电影评论,来判断电影评论是积极的,还是消极的。
  • 【设计模式】【行为型模式】备忘录模式(Memento)
  • 【电脑】u盘重装win7
  • 国家2025年数字化污水厂政策与视频孪生赋能智慧污水厂建设
  • 【Kubernetes】常用命令全解析:从入门到实战(中)
  • 遗传算法与深度学习实战(35)——使用遗传算法优化生成对抗网络
  • 算法——数学建模的十大常用算法
  • Docker 网络的配置与管理
  • 数据分析——动态分配内存、结构体
  • c语言基础08
  • 【Elasticsearch】监控与管理:集群健康检查
  • 【ENSP】华为设备console 认证配置
  • (学习总结22)Linux 基本指令1
  • 离散数学之谓词等值式与蕴涵式
  • 2.13寒假作业
  • 初阶c语言(练习题,猜随机数)
  • 手写一个Java Android Binder服务及源码分析
  • Day 38 卡玛笔记
  • web自动化笔记(二)
  • MySQL判空函数--IFNULL函数的使用
  • 网站建设年费/韩国日本比分
  • 松江区做网站的公司/免费大数据网站
  • 常州网站建设开发/世界500强企业排名
  • 新乐网站建设/公司网站怎么建立
  • 哪家公司建设网站/优化设计答案四年级上册语文
  • 网站优化哪里好/全国疫情突然又严重了