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

如何在 uniapp 里面使用 pinia 数据持久化 (pinia-plugin-persistedstate)

想要在 uniapp 里面使用 pinia-plugin-persistedstate 会遇到的问题就是 uniapp里面没有浏览器里面的 sessionStorage localStorage 这些 api
我们只需要替换掉 pinia-plugin-persistedstate 默认的储存 api 就可以了。使用 createPersistedState 重新创建一个实例, 把里面的 storage 的参数修改为对应的 uniapp 里面的 storage api 就可以. 已经提取在 customStorage 函数里面了.

import 'virtual:uno.css'
import { createSSRApp } from "vue";
import uviewPlus from 'uview-plus'
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-plugin-persistedstate'
import App from "./App.vue";
export function createApp() {
  const pinia = createPinia()
  pinia.use(customStorage())
  const app = createSSRApp(App);
  app.use(uviewPlus)
  app.use(pinia)
  return {
    app,
    pinia
  };
}

/**
 * @description 自定义pinia持久化api储存方式为 unisetStorageSync
 * @returns 
 */
function customStorage() {
  return createPersistedState({
    storage: {
      getItem(key: string) {
        return uni.getStorageSync(key)
      },
      setItem(key: string, value: any) {
        uni.setStorageSync(key, value)
      }
    }
  })
}

http://www.kler.cn/news/107011.html

相关文章:

  • 关于路由转发
  • Mysql binlog日志功能使用,简单易懂
  • centos更改yum源
  • 2023大湾区杯粤港澳金融数学建模竞赛思路+模型+代码
  • 直方图均衡化算法
  • 最长公共子序列(LCS)与最长上升子序列(LIS)问题的相互转换
  • uni-app集成uni-simple-router,报错:Uncaught ReferenceError: ROUTES is not defined
  • element-plus form表单的二次封装
  • C++工程使用curl 静态库
  • 3DCAT+东风日产:共建线上个性化订车实时云渲染方案
  • k8s客户端配置
  • 2.22每日一题(含绝对值的定积分+极值+凹凸区间+单调区间)
  • 汽车托运如何获得赔偿
  • Flask 上传文件,requests通过接口上传文件
  • 考虑温度影响的vumat子程序在木材受火后强度分析中的应用
  • 2023了,是时候使用pnpm了!
  • Java实现SQL分页
  • 项目经验分享|openGauss 陈贤文:受益于开源,回馈于开源
  • 77 全排列
  • iOS开发-CoreNFC实现NFC标签Tag读取功能
  • HAproxy负载均衡集群
  • 无人监测站相关配置
  • PyTorch入门学习(七):卷积操作
  • ch3_6多线程举例
  • fastadmin分类下拉(多级分类)使用教程
  • 栈、队列、矩阵的总结
  • Linux两条服务器实现相互免密登录
  • Android 13.0 系统多个播放器app时,设置默认播放器
  • 为什么网上的流量卡都有禁发地区呢?流量卡管控地区整理!
  • 07.K8S高可用集群节点规划