Pinia+持久化插件

使用步骤:

1、安装pinia    npm install pinia

2、在vue应用实例使用pinia

import './assets/main.css'

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
//引入路由
import router from '@/router'


import App from './App.vue'

//pinia
import {createPinia} from 'pinia'

const app = createApp(App);

//创建使用
const pinia = createPinia();
app.use(pinia)


app.use(router)
app.use(ElementPlus);
app.mount('#app')

3、创建store文件夹,创建token.js文件(我是用来拿token,名字无所谓)

//定义store
import {defineStore} from 'pinia'
import {ref} from 'vue'
/*
第一个参数,名字,唯一性
第二个参数:函数
*/

export const useTokenStore = defineStore('token',()=>{
    //定义状态的内容
    //1、响应式变量
    const token = ref('')
    //2、设置值的函数
    const setToken = (newToken)=>{
        token.value = newToken
    }
    //3、清空
    const removeToken = ()=>{
        token.value=''
    }

    return{
        token,setToken,removeToken
    }
});

4、在组件中运用

//登录页面vue

import {useTokenStore} from '@/stores/token.js'
const tokenStore = useTokenStore();

//随便举例,具体使用具体用法
const login = async()=>{
    let result = await doLogin(value);
    //调用方法存储返回的token值
    tokenStore.setToken(result.data)
}


//登录成功后的其他vue,或者需要发送token的其他js文件等等

//导入
import { useTokenStore } from '@/stores/token'
const tokenStore = useTokenStore();
//需要用到token值,直接拿即可,根据情况而定,拿不到加上.value
let token = tokenStore.token

5、持久化插件persist

安装npm install pinia-persistedstate-plugin

main.js调整

import {createPersistedState} from'pinia-persistedstate-plugin'
const persist = createPersistedState()
//pinia使用持久化插件
pinia.use(persist)

app.use(pinia)

在定义的状态添加持久化token.js

export const useTokenStore = defineStore('token',()=>{
    //1.定义描述token
    const token = ref('')

    //2.定义修改token的方法
    const setToken = (newToken)=>{
        token.value = newToken
    }

    //3.定义移除token的方法
    const removeToken = ()=>{
        token.value=''
    }
    return {
        token,setToken,removeToken
    }
},
{
    persist:true//参数持久化
}
)

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值