首页 > 其他分享 >pinia数据持久化

pinia数据持久化

时间:2023-05-13 15:12:52浏览次数:37  
标签:持久 vueuse userInfo pinia import 数据 store

方式一

使用vueuse提供的hook函数useSessionStorage和useLocalStorage,可以实现对某个变量的持久话

  1. 安装vueuse库
    npm i @vueuse/core
    
  2. 在stoer中使用
    import { useLocalStorage } from '@vueuse/core'
    
    export const useUserStore = defineStore('userStore', {
      state: () => ({
        // 会自动添加响应式
        userInfo: useLocalStorage('user',<UserInfo>{})
      }),
      getters: {},
      actions: {
        setUser(userInfo: UserInfo) {
          this.userInfo = userInfo
        }
      }
    }
    

方式二

使用pinia插件pinia-plugin-persist,在需要进行持久话的store中添加对应的配置项即可

  1. 安装
    npm i pinia-plugin-persist
    
  2. 新建src/store/index.ts
    // *************安装插件并导出Pinia实例**************
    import { createPinia } from 'pinia'
    import PiniaPluginPersist from 'pinia-plugin-persist'
    
    const store = createPinia()
    // 使用持久化插件
    store.use(PiniaPluginPersist)
    export default store
    
  3. 在src/main.ts中引入
    import { createApp } from 'vue'
    import App from './App.vue'
    const app = createApp(App)
    
    import store from './store'
    app.use(store).mount('#app')
    
  4. 在需要做持久化的store中添加配置
    import { defineStore} from 'pinia'
    
    /** user相关的store */
    export const useUserStore = defineStore('userStore', {
      state: () => ({
        userInfo: <UserInfo>{}
      }),
      getters: {},
      actions: {},
      // 数据持久化配置
      persist: {
        // 开启数据持久化
        enabled: true,
        strategies: [
          {
            // 本地存储中的键
            key: 'userStore',
            // 使用的本地存储类型,默认使用sessionStorage
            storage: localStorage
          }
        ]
      }
    })
    

标签:持久,vueuse,userInfo,pinia,import,数据,store
From: https://www.cnblogs.com/gyxc/p/17397418.html

相关文章

  • 几条固定数据需要建表?
    在开发中,可能会遇到这样的业务场景:已知有几条固定的数据,需要实现【展示&修改】功能。建表?杀鸡用牛刀缓存?服务器重启,数据就失效了从领域角度而言,这种数据可以视为配置(config),使用者可以选择自己想要的某种配置,同时又可以对这些配置做出一定调整(修改)。谈到配置,不难想出......
  • MyBatis Plus 解决大数据量查询慢问题
    常规查询流式查询游标查询大数据量操作的场景大致如下:数据迁移数据导出批量处理数据在实际工作中当指定查询数据过大时,我们一般使用分页查询的方式一页一页的将数据放到内存处理。但有些情况不需要分页的方式查询数据或分很大一页查询数据时,如果一下子将数据全部加载出......
  • NeRF与三维重建专栏(一)领域背景、难点与数据集介绍
    前言 关于该系列专栏,主要介绍NeRF在三维重建中的应用(这里我们特指MVS,multi-viewstereo,也即输入带位姿的图片,输出三维结构例如点云、mesh等;并且后面的工作也都是围绕MVSwithNeRF讨论的。虽然也有withoutpose的NeRF,从重建的角度也可以理解为SFMwithNeRF,例如ESLAM,Barf,但不是本......
  • 数据库设计
    数据库概念三层模式系统结构:三级模式,内模式、概念模式、外模式。内模式:管理如何存储物理数据。概念模式:根据需求划分为一张张的表。外模式:对应视图级别,将表进行了一次封装处理。内模式:存储模式,数据库在物理方面的描述,定义记录类型、索引、文件组织方式(概念模式下的一张表,在内模......
  • 随机生成工具类---主要目的是为了造大量数据准备
    有时候需要造大量数据进行测试,或者是用于学习,当然了这个工具类的目的就是为了后面测试easyExcel与easyPoi两者性能准备的需要引入一个hutool工具类hutool工具类在此工具类上的影响并不多,好像就一个随机生成年龄的地方,才用到了,如果不想引入可以直接删除即可<depende......
  • 数据结构--树和森林
    数据结构--树和森林树和森林森林是m棵互补相交的树的集合.将树去掉根结点可以变成森林,将森林的每个树全部加上根结点可以变成一颗树.1.双亲表示法数据域:存放数据双亲域:存放双亲结点在数组当中的位置.特点:找双亲容易,找孩子难.双亲表示法使用结构体数组存储首先定......
  • DTS106TC数据库
    XJTLUEntrepreneurCollege(Taicang)CoverSheetModulecodeandTitle DTS106TC:IntroductiontoDatabaseSchoolTitle SchoolofAIandAdvancedComputingAssignmentTitle AssessmentTask001(CW):IndividualCourseworkSubmissionDeadline 17May2023at5:......
  • MySQL学习日志四,数据表的类型
    --关于数据库引擎/*INNODB默认使用MYISAM早些年使用*/区别MYISAMINNODB事务支持不支持支持数据行锁定不支持支持外键约束不支持支持全文索引支持不支持表空间大小较小较大,约为MYISAM2倍常规使用操作:MYISAM节约空间,速度较快INNOD......
  • MySQL-----DCL数据控制语言
    MySQL-----DCL数据控制语言用来管理数据库用户,控制数据库的访问权限用户管理查询用户USEmysql;SELECT*FROMuser;创建用户CREATEUSER'用户名'@'主机名'IDENTIFIEDBY'密码';修改用户密码ALTERUSER'用户名'@'主机名'IDENTIFIEDWITHmysql_native_passwordBY�......
  • Excel合并单元格拆分后数据补录
    原始数据: 期望数据步骤:1、补录为空的数据2、拆分单元格、选择数据选择数据后执行Ctr+G定位数据定位条件:空值定位到第一个数据后,编写公式【=】然后选择它的上一个单元格然后执行Ctrl+回车,被定位到的数据全部执行等于上一单元格值的公式 ......