首先我们想要尝试在页面上展示我们的个人头像与个人名称,我们需要根据我们login所存储的本地token采用请求响应器在头部加上token。
1 2 3 4 5 6 7 8 9 10
| request.interceptors.request.use((config) => { const userStore = useUserStore() if (userStore.token) { config.headers.token = userStore.token } return config })
|
在组件挂载中调用仓库action函数获取user信息其中userInfo信息获取定义如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| async userInfo() { const result: userInfoReponseData = await reqUserInfo()
if (result.code == 200) { this.username = result.data.checkUser.name this.avatar = result.data.checkUser.avatar this.buttons = result.data.checkUser.buttons console.log('ddd', result.data.checkUser)
return 'ok' } else { return Promise.reject(new Error(result.message)) } },
|
其中API,reqUserInfo定义如下:
1 2
| export const reqUserInfo = () => request.get<any, userInfoReponseData>(API.USERINFO_URL)
|
其中mock定义如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| { url: '/api/user/info', method: 'get', response: (request) => { const token = request.headers.token const checkUser = createUserList().find((item) => item.token === token) console.log('mmm', checkUser) if (!checkUser) { return { code: 201, data: { message: '获取用户信息失败' } } } return { code: 200, data: { checkUser } } }, },
|
最终主页面显示如下: