文章目录
- 前言
- 一、准备
- 1. 获取用户信息
- 2. 存储用户信息
- 3. 加载用户信息
- 二、用户信息
- 1.昵称
- 2.头像
- 三、展示
- 总结
前言
这里我们来展示用户昵称和头像。
一、准备
1. 获取用户信息
export const userInfoService = ()=>{
return request.get('/user/info')
}
2. 存储用户信息
import { ref } from 'vue'
import { defineStore } from 'pinia'
const useUserInfoStore = defineStore('userInfo', () => {
const userInfo = ref({})
const setUserInfo = (info)=>{
userInfo.value=info
}
const getUserInfo = ()=>{
return userInfo.value
}
const removeUserInfo = ()=>{
userInfo.value={}
}
return {userInfo, setUserInfo, getUserInfo, removeUserInfo }
},{persist:true})
export default useUserInfoStore
3. 加载用户信息
完成上面两步的调用
import { onMounted } from 'vue'
import { userInfoService } from '@/api/user.js'
import useUserInfoStore from '@/stores/userInfo.js'
onMounted(async () => {
let result = await userInfoService()
if (result.code == 0) {
useUserInfoStore().setUserInfo(result.data)
}
})
二、用户信息
1.昵称
<template #dropdown>
<el-dropdown-menu>
<div v-if="useUserInfoStore().getUserInfo().nickname" style=" text-align: center; "><span class="accent" data-v-6b0c93fd=""><strong>你好,{{
useUserInfoStore().getUserInfo().nickname }}</strong></span></div>
<el-dropdown-item command="profile" :icon="User">基本资料</el-dropdown-item>
<el-dropdown-item command="avatar" :icon="Crop">更换头像</el-dropdown-item>
<el-dropdown-item command="password" :icon="EditPen">重置密码</el-dropdown-item>
<el-dropdown-item command="logout" :icon="SwitchButton">退出登录</el-dropdown-item>
</el-dropdown-menu>
</template>
2.头像
<span class="el-dropdown__box">
<el-avatar :src="useUserInfoStore().getUserInfo().userPic?'avatar/'+useUserInfoStore().getUserInfo().userPic:avatar" />
<el-icon>
<CaretBottom />
</el-icon>
</span>
三、展示
效果如下图所示
总结
回到顶部