VUEX储存登陆用户的信息,方便在需要的模块调用:
1.项目结构
在src文件夹下创建store文件夹,包含actions.js、getter.js、index.js、mutation.js
2.代码
(1)index.js
import Vue from 'vue';
import Vuex from 'vuex';
import * as getters from './getters';
import * as mutations from './mutations';
import * as actions from './actions';
Vue.use(Vuex);
const state = {
information: {}
};
export default new Vuex.Store({
state,
getters,
mutations,
actions
});
(2)actions.js
export const information = ({ commit }, data) => {
commit('information', data);
};
(3)getter.js
export const information = state => state.information;
(4)mutations.js
export const information = (state, data) => {
state.information = data;
};
(5)在main.js中引入
import Vue from 'vue';
import App from './App.vue';
import store from './store/index';
Vue.config.productionTip = false;
Vue.prototype.$store = store;
new Vue({
render: h => h(App),
}).$mount('#app');
(6)存入
this.$axios.get('')
.then(res => {
this.$store.dispatch('information', res.datas);
}).catch(err => {
console.log(err);
});
(7)模块中调用
<span>下午好,{{ username }}</span>
computed: {
username() {
if (this.$store.getters.information.real) {
return this.$store.getters.information.real.realName;
} else {
return '***';
}
}
},