vue3中数据持久化插件pinia-plugin-persistedstate
解决
第三方插件pinia-plugin-persistedstate,其实这个插件是把数据存入localStorage进行持久化存储的
pnpm i pinia-plugin-persistedstate
# or
npm i pinia-plugin-persistedstate
# or
yarn add pinia-plugin-persistedstate
import persist from 'pinia-plugin-persistedstate'
const app = createApp(App)
app.use(createPinia())
app.use(createPinia().use(persist))
import type { User } from '@/types/user'
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useUserStore = defineStore(
'cp-user',
() => {
const user = ref<User>()
const setUser = (u: User) => {
user.value = u
}
const delUser = () => {
user.value = undefined
}
return { user, setUser, delUser }
},
{
persist: true
}
)
<script setup lang="ts">
import { useUserStore } from './stores/user'
const store = useUserStore()
</script>
<template>
<p>{{ store.user }}</p>
<button @click="store.setUser({ id: '1', mobile: '1', account: '1', avatar: '1', token: '1' })">
登录
</button>
<button @click="store.delUser()">退出</button>
</template>