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; |