42 lines
869 B
JavaScript
42 lines
869 B
JavaScript
![]() |
// store/index.js
|
||
|
import Vue from 'vue';
|
||
|
import Vuex from 'vuex';
|
||
|
|
||
|
Vue.use(Vuex);
|
||
|
|
||
|
const store = new Vuex.Store({
|
||
|
state: {
|
||
|
userInfo: null, // 用户信息
|
||
|
theme: 'light', // 主题
|
||
|
token: '', // 登录凭证
|
||
|
},
|
||
|
mutations: {
|
||
|
setUserInfo(state, userInfo) {
|
||
|
state.userInfo = userInfo;
|
||
|
},
|
||
|
setTheme(state, theme) {
|
||
|
state.theme = theme;
|
||
|
},
|
||
|
setToken(state, token) {
|
||
|
state.token = token;
|
||
|
}
|
||
|
},
|
||
|
actions: {
|
||
|
updateUserInfo({ commit }, userInfo) {
|
||
|
commit('setUserInfo', userInfo);
|
||
|
},
|
||
|
updateTheme({ commit }, theme) {
|
||
|
commit('setTheme', theme);
|
||
|
},
|
||
|
updateToken({ commit }, token) {
|
||
|
commit('setToken', token);
|
||
|
}
|
||
|
},
|
||
|
getters: {
|
||
|
getUserInfo: (state) => state.userInfo,
|
||
|
getTheme: (state) => state.theme,
|
||
|
getToken: (state) => state.token
|
||
|
}
|
||
|
});
|
||
|
|
||
|
export default store;
|