登陆以后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 和 "用户是否已登录“ 这个逻辑关联有瑕疵。//img.mukewang.com/szimg/5ff1e70409ea758515121878.jpg

0
0

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3211 学习 · 2364 问题

查看课程