pinia持久化

1.自己手动通过localStorage实现

import { defineStore } from 'pinia'

const useStore = defineStore('storeId', {
  // 推荐使用 完整类型推断的箭头函数
  state: () => {
    return {
      // 所有这些属性都将自动推断其类型
      token:localStorage.getItem("token") 
             ? localStorage.getItem("token") : "", // 认证凭证'
    }
  },
   actions: {
    setToken(value) {
      this.token=value;
      localStorage.setItem("token", val);
    }
  },
})

 2.通过插件实现

2.1. 安装插件 

npm i  pinia-plugin-persist --save

2.2 .main.js中装载插件

import { createApp } from 'vue'
import App from './App.vue'
import { createPinia } from 'pinia'
import piniaPersist from 'pinia-plugin-persist'

const app = createApp(App);
const pinia = createPinia();
pinia.use(piniaPersist);
app.use(pinia)
  .mount('#app')

2.3 .在useXXstore中开启存储

import { defineStore } from 'pinia'

const useStore = defineStore('storeId', {
  // 推荐使用 完整类型推断的箭头函数
  state: () => {
    return {
      // 所有这些属性都将自动推断其类型
      token: "", // 认证凭证',
      firstName:"",
      lastName:"",
    }
  },
   actions: {
    setToken(value) {
      this.token=value;
    }
  },
   persist: {
    enabled: true , // 这个配置代表存储生效,而且是整个store都存储,
                    //默认是sessionStorage存储
  },
})

2.4 .指定开启存储的对象及存储方式

persist: {
    enabled: true,
    strategies: [
      { storage: sessionStorage, paths: ['firstName', 'lastName'] }, 
        //  firstName 和 lastName字段用sessionStorage存储
      { storage: localStorage, paths: ['token'] }, 
        // accessToken字段用 localstorage存储
        //当只配置有一个storage,且不配置paths时,默认整个store内所有对象都将存储
    ],
  },

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值