1.登陆的时候,在登陆模块请求接口,然后获取一个access_token,获取用户权限.保存到缓存里面。
2.退出的时候,请求退出接口,把缓存里面的access_token清除。
一旦要在登陆里面做一些行为,比如,在后面新加一些数据传递给登陆接口,做数据收集。就要在登陆的Login.vue模块
里面直接修改。模块里面的代码很多。所有的逻辑都混在一起。
所以可以把登陆和退出的变量和行为抽离出来,在状态管理里统一管理。
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++
}
}
})
把退出,登陆的模块都封装在一个状态模块上面
const moduleA = {
state: { ... },
mutations: { ... },
actions: { ... },
getters: { ... }
}
const moduleB = {
state: { ... },
mutations: { ... },
actions: { ... }
}
const store = new Vuex.Store({
modules: {
a: moduleA,
b: moduleB
}
})
store.state.a // -> moduleA 的状态
store.state.b // -> moduleB 的状态
对用户权限判断是否可以进入某个页面的时候,统一在路由钩子里进行执行。
比如 登陆进首页,需要判断用户权限,从别的页面进首页,仍然要判断用户权限。
如果页面进入分别写在登陆页面,和别的页面,代码就不好维护,都在vue路由的导航守卫里面进行处理
原文:https://www.cnblogs.com/chenyi4/p/11387682.html