user.ts 719 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { defineStore } from 'pinia'
  2. import { ref } from 'vue'
  3. const initState = { nickname: '', avatar: '' }
  4. export const useUserStore = defineStore(
  5. 'user',
  6. () => {
  7. const userInfo = ref<IUserInfo>({ ...initState })
  8. const setUserInfo = (val: IUserInfo) => {
  9. userInfo.value = val
  10. }
  11. const clearUserInfo = () => {
  12. userInfo.value = { ...initState }
  13. }
  14. // 一般没有reset需求,不需要的可以删除
  15. const reset = () => {
  16. userInfo.value = { ...initState }
  17. }
  18. const isLogined = computed(() => !!userInfo.value.token)
  19. return {
  20. userInfo,
  21. setUserInfo,
  22. clearUserInfo,
  23. isLogined,
  24. reset,
  25. }
  26. },
  27. {
  28. persist: true,
  29. },
  30. )