登陆以后store里面的数据是怎么回事?
来源:9-6 改进路由验证系统
weixin_慕田峪131215
2021-01-03
视频开头。在login.vue 里面。
store.dispatch(‘loginAndFetch’, payload).then(() => {
createMessage(‘登陆成功,3秒以后跳转首页’, ‘success’);
setTimeout(() => {
// 成功登陆,跳转到首页
router.push(’/’);
console.log(store.state.user.isLogin);// true
}, 3000);
}).catch(e => {
console.log(e);
});
登陆成功后页面跳转首页,控制台打印出来的store.state.user.isLogin 是true 。
但是为什么这个时候再次刷新页面,在路由前置守卫那里store.state.user.isLogin 就是false了?搞不明白?
写回答
1回答
-
weixin_慕田峪131215
提问者
2021-01-03
在已登录,(这个时候本地js文件里的user.isLogin 被更改成true)并且在create路由页面下,刷新页面。此时,user.isLogin 是false。这是由于刷新页面,重新请求网络而来的js文件里面保存的user.isLogin 默认依然是false。所以逻辑上的已登录状态(user.isLogin) 会因为刷新页面而变成未登录状态(user.isLogin=false)。
所以代码语义上,user.isLogin 和 "用户是否已登录“ 这个逻辑关联有瑕疵。
00
相似问题
