把用户信息存到vuex state
This commit is contained in:
parent
24026f3620
commit
760d1596c8
@ -10,6 +10,7 @@
|
||||
const getters = {
|
||||
sidebar: state => state.app.sidebar,
|
||||
device: state => state.app.device,
|
||||
token: state => state.user.token
|
||||
token: state => state.user.token,
|
||||
name: state => state.user.userInfo.username
|
||||
}
|
||||
export default getters
|
||||
|
@ -2,7 +2,7 @@
|
||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
||||
|
||||
// 导入登录api
|
||||
import { login } from '@/api/user'
|
||||
import { getUserInfo, login } from '@/api/user'
|
||||
|
||||
// import { resetRouter } from '@/router'
|
||||
|
||||
@ -103,7 +103,8 @@ import { login } from '@/api/user'
|
||||
// 初始化的时候从缓存中读取状态 并赋值到初始化的状态上
|
||||
const state = {
|
||||
// 2. 页面刷新初始化时, 尝试恢复
|
||||
token: getToken()
|
||||
token: getToken(),
|
||||
userInfo: {} // 不同组件共享用户信息
|
||||
}
|
||||
// 修改状态
|
||||
const mutations = {
|
||||
@ -120,14 +121,29 @@ const mutations = {
|
||||
removeToken(state) {
|
||||
state.token = null // 删除vuex的token
|
||||
removeToken() // 先清除 vuex 再清除缓存 vuex和 缓存数据的同步
|
||||
},
|
||||
// 存储用户信息
|
||||
setUserInfo(state, data) {
|
||||
state.userInfo = { ...data }
|
||||
},
|
||||
// 删除用户信息
|
||||
removeUserInfo(state) {
|
||||
state.userInfo = {}
|
||||
}
|
||||
}
|
||||
// 执行异步
|
||||
const actions = {
|
||||
// 登录
|
||||
async login({ commit }, data) {
|
||||
const res = await login(data)
|
||||
console.log('将登录页的逻辑移动到 vuex 里面')
|
||||
commit('setToken', res)
|
||||
},
|
||||
// 获取用户信息
|
||||
async getUserInfo({ commit }) {
|
||||
const res = await getUserInfo()
|
||||
commit('setUserInfo', res)
|
||||
return res
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserInfo } from '@/api/user'
|
||||
// import { getUserInfo } from '@/api/user'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
@ -16,9 +16,10 @@ export default {
|
||||
])
|
||||
},
|
||||
created() {
|
||||
getUserInfo().then(res => {
|
||||
console.log(res)
|
||||
})
|
||||
// getUserInfo().then(res => {
|
||||
// console.log(res)
|
||||
// })
|
||||
this.$store.dispatch('user/getUserInfo')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user