bug1:页面跳转失败,一直显示根目录
情况说明:点击按钮后,页面一直不跳转,或者是跳一下又回到根目录。
解决方法:在绑定事件是用@click.prevent从而阻止默认事件的默认行为发生。
bug2:设置登录状态,状态值一直显示true
情况说明:要求打开网页时,如果登录状态为true则直接跳转到主页面,否则跳转到登录页面。进入主页面后,点击退出登陆状态为false。在注册好全局守卫后,发现状态值一直是true。导致没有登录状态的用户也可以直接进入主页面。
但是在login.vue中状态值没有错,alert显示的是false而控制台输出的是true。于是开始查找原因,在每一步都设置console,一步步排查,发现路由设置逻辑没有问题,是数据的问题!!
后台输出:
解决方法:最终发现在注册时没有对状态值初始化,导致默认状态值是true。
于是在register.vue中初始化状态值为false。
紧接着问题又来了,由于路由内设置的是如果状态值是true,则next(’/Home‘),如果是false则next(’/login‘),在注册账号后的状态值是false,导致点击登录后不能进入主页并报错。
这时想到可以用全局守卫中的from.path,如果是从/login进入的,不用管登陆状态值,直接进入主页面,如果是从根目录进入的就判断一下登录状态,为true就跳转到/Home,为false就跳转到/login。(如图)