我这里模块化管理,直接从user.js里开始
user.js是引入到index.js里的
//首先我们在state里定义一个token变量
state: {
token:''
},
//然后在mutations里,写一个token赋值的方法
mutations: {
// SET_TOKEN 是方法名
SET_TOKEN: (state, token) => {
state.token = token
},
},
下面我们来到登录页,写登录功能
// 代码省略
login(账号密码).then(res)=>{
// 这里的loginFn就是我们在vuex中 和 actions里的方法对应,后面的值就是后台返回的token值
this.$store.dispatch("loginFn", res.headers.token)
}
再回到vuex页面
// 我们在mutations的对象下 添加一个actions
actions: {
登录成功后 就会调用这个loginFn方法,然后token也是登录成功后一起传的
loginFn({ commit }, token) {
return new Promise((resolve, reject) => {
// 这里就是把token存到了xuex中了
commit('SET_TOKEN', token)
})
},
}