美文网首页
vue3 使用vuex

vue3 使用vuex

作者: 代瑶 | 来源:发表于2021-12-01 15:21 被阅读0次

    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>
    
    

    相关文章

      网友评论

          本文标题:vue3 使用vuex

          本文链接:https://www.haomeiwen.com/subject/acvsxrtx.html