import { setUser, setToken, getAuth } from '../../com/storage/auth.js' const getDefaultState = () => { return { token: { access_token: '', token_type: '', expires_in: '', }, user: { id: '', username: '', vip: '', nickname: '', avatar_url: '', appcode: '', pid: '', mobile: '', openid: '', } } } export default { namespaced: true, state: getAuth() ? getAuth() : getDefaultState(), mutations: { //通俗的理解,mutations 里面装着改变数据的方法集合,处理数据逻辑的方法全部放在 mutations 里,使数据和视图分离。 setToken(state, value) { //更新当前时间戳 state.token = value; setToken(value); }, resetToken(state) { Object.assign(state.token, getDefaultState().token); setToken(getDefaultState().token); }, setUser(state, value) { state.user = value; setUser(value); }, resetUser: (state) => { Object.assign(state.user, getDefaultState().user); setUser(getDefaultState().user); }, }, actions: { /** * action 类似于 mutation ,不同在于: action 提交的是 mutation,通过 mutation 来改变 state ,而不是直接变更状态。 action 可以包含任意异步操作。 */ setTokenAction(context, value) { context.commit('setToken', value); }, resetTokenAction: (state) => { context.commit('resetToken'); }, setUserAction(context, value) { context.commit('setUser', value); }, resetUserAction(context) { context.commit('resetUser'); } }, getters: { }, }