vuex_store.js
import vuex from 'vuex'
const state = {
userInfo: {},
}
const mutations = {
updateUserInfo(state, userInfo) {
state.userInfo = userInfo;
},
}
const getters = {
userInfo: state => {
return state.userInfo;
},
}
const actions = {
updateUserInfo: ({commit}, payload) => {
commit('updateUserInfo', payload);
}
}
export default new vuex.Store({
state,
actions,
getters,
mutations,
})
main.js
....
import {createApp} from 'vue'
import App from './App.vue'
import vuex from 'vuex'
import mitt from 'mitt';
import vuexStore from './common/vuex_store'
import {router} from './common/router';
router.beforeEach((to, from, next) => {
const title = to.meta && to.meta.title;
if (title) {
document.title = title;
}
next();
});
// export default mitt();
const app = createApp(App);
app.use(router);
app.use(vuex);
app.use(vuexStore); //这里注册进来
app.config.globalProperties.$bus = mitt();
app.config.globalProperties.$showLoading = "showLoading";
app.mount('#app');
要使用的js
<script>
import {mapGetters} from "vuex";
export default {
created() {
this.$store.dispatch("updateUserInfo", {"name": "DaiYao"});
console.log("打印用户信息:> " + this.userInfo.name)
},
computed: {
...mapGetters(["userInfo"])
}
}
</script>
网友评论