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>