vue3里本地存储——pinia方法

在项目里,我们有时候会需要存储token,用户名,密码这些,pinia就是比较方便的一个方法。

1.首先,我们得安装 pinia 和安装 persist

npm install pinia

npm install pinia-persistedstate-plugin

2. 第二步,就需要在 main.js 里进行一个全局引用了

import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-persistedstate-plugin'


const pinia = createPinia()
const persist = createPersistedState()
pinia.use(persist)

app.use(pinia)

3.创建一个 store.js 文件 (我这边就储存token,password,username为例,我写在一个文件里了,到时候方便引用)

import { defineStore } from "pinia";
import { ref } from "vue";

export const useStore = defineStore('store', () => {//store是一个ID标识

    //token
    const token = ref('');

    const setToken = (newToken) => {
        token.value = newToken;
    }

    const removeToken = () => {
        token.value = ''
    }

    //username
    const username = ref('');

    const setUsername = (newUsername) => {
        username.value = newUsername;
    }

    const removeUsername = () => {
        username.value = ''
    }


    //password
    const password = ref('');

    const setPassword = (newPassword) => {
        password.value = newPassword;
    }

    const removePassword = () => {
        password.value = ''
    }


    return {
        token, setToken, removeToken, username, setUsername, removeUsername, password, setPassword, removePassword
    }
}, {
    persist: true //持久化存储(为了刷新页面,存储值不消失)
});

persist: true 是因为pinia自身有一个bug,如果不引用它,在刷新页面的时候,本地存储也随之消失,所以不能忽略,一开始安装 persist 也是这个目的

4.最后一步就是写入存储值了,一般我们是在登录页面写入

import { useStore} from '@/store/store';

const store = useStore();

.....

//当登录成功进行跳转时
store.setToken("23456");//这个是我写的一个定值,到时候根据input获取来
store.setUsername("admin")
store.setPassword("password")

......

ps 如何查看呢,我们可以在登录后的一个页面进行测试 test.vue

import { useStore} from '@/store/store';

const store = useStore();
console.log(store.username,store.password,store.token)//admin,password,23456

我们也可以在网页的本地存储里查看

这样本地存储就可以了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值