vuex全局登录状态

store下index.js中

//同步修改state内的值
    mutations: {
        //  改变登录状态
        //  参数一:全局状态state  参数二:调用方法时的传参
        changLogin(state, payload) {
            state.isLogin = payload.isLogin;
            state.userInfo = payload.userInfo;
        },
    },
    //异步修改数据
    actions: {
        //  检测登录状态
        // console.log(state.keep)
        checkLogin(context, payload) {
            getUserInfo().then(res => {
                console.log(res)
                if (res.data.code == 0) {
                    context.commit('changLogin', {
                        isLogin: true,
                        userInfo: res.data.userInfo
                    })
                } else {
                    context.commit('changLogin', {
                        isLogin: false,
                        userInfo: {}
                    })
                }
            })
        }
    },

app.vue中

        created(){
            this.$store.dispatch('checkLogin').then(()=>{
                // console.log(res)
                this.$store.commit('changLogin',
                {isLogin:true,userInfo:this.$store.state.userInfo})
            })
        }

 

posted @ 2021-10-20 21:53  从入门到入土  阅读(187)  评论(0编辑  收藏  举报