// 每一个存储的模块,命名规则use开头,store结尾 import { defineStore } from 'pinia' import { ref, computed } from 'vue' import { removeLocal, setLocal } from '@/utils/local' import MyEvent from '@/utils/myEvent' export const useUserInfoStore = defineStore('userInfo', () => { const state = ref({ userInfo: { userId: "", email: "", username: "", accessToken: "", expiresIn: "", }, token: '' }) // actions const setUserInfo = (data: any) => { state.value.userInfo = data setToken(data.accessToken) } const setToken = (data: string) => { state.value.token = data setLocal(data, 'token') } const logout = () => { // 处理退出登录的一些逻辑 return new Promise((resolve) => { state.value.userInfo = { userId: "", email: "", username: "", accessToken: "", expiresIn: "", } state.value.token = '' removeLocal('token') resolve('') }) } return { state, setToken, setUserInfo, logout } })