出现的原因:
按照 登录-》路由调转 进行时,我们在登录时会调用接口,获取动态路由信息,此时是有路由信息的,可以正常跳转。
但是,当我们刷新时,会删除动态路由信息,关于addRoute,官网中有这样一句话:‘请注意,添加路由并不会触发新的导航。也就是说,除非触发新的导航,否则不会显示所添加的路由’,所以此时再进行跳转,当然会出现空白页或404的情况。
解决办法:
在配置路由守卫时,获取路由信息并添加路由(addRoute)后,使用 router.push() 或 router.replace() 重新加载路由,如图所示:
注:router.push() 与 router.replace() 的区别:
router.push() 会新增history,跳转后可以后退,而 router.replace() 相当于替换history。
举个例子:
如果把history看做一个数组的话,让其都有一个相同的 history:[1,2,3]
使用router.push(): history:[1, 2, 3, 4]
router.replace(): history:[1, 2, 4]