Vue3中使用pinia+pinia-plugin-persist做持久化踩的坑

1 篇文章 0 订阅
1 篇文章 0 订阅

首先user模块的pinia代码如下:
 

import { defineStore } from 'pinia'

export const useUserStore = defineStore('user',{
  state: () => {
    return {
      token: '',
      userInfo:{}
    }
  },
  actions:{
    setToken( token ){
      this.token = token
      console.log(token)
    },
    setUserInfo( userInfo ){
      this.userInfo = userInfo
    }
  },
  persist: {
    enabled: true, // 开启数据缓存
    strategies: [
      {
        key: 'myuser',
        storage: localStorage // 默认是sessionStorage
      }
    ],
  }
})

组件内使用; 登录页

// 在登录组件内
// pinia
import { useUserStore } from '../store/user'
// 提前获取pinia实例对象
const userStore = useUserStore()

在登录使用操作保存setToken:

// 登录按钮绑定的函数
const userBtn = (formEl) => {
    ...
    userStore.setToken(res.data.accessToken)
    ...
}

登录成功后并没有将token值存入localstorage中

 

解决办法:

把获取的pinia实例对象放在需要操作pinia之前

const userBtn = (formEl) => {
    ...
    const userStore = useUserStore()
    userStore.setToken(res.data.accessToken)
    ...
}

搞定,为什么pinia会抽风,待研究...................................................

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值