最近,项目上有个需求就是讲页码嵌入的其他项目里。本来,没觉得有啥问题,但是到配置url直接跳转地址的时候,发现url请求路由执行后总是404,然后就直接跳转到了首页去,刷新也是一样,然后想着通过刷新监听事件将路由请求保存在缓存,然后直接读入缓存,然后再next直接跳转,结果陷入了死循环中。
尝试了各种方式,查了一天也没好的解决方案,最后无意间发现一个解决方案:
造成原因:
我们在登录后跳转到首页,首页是在基础路由表就存在的,所以我们这样做并无影响。但是当我们在某个页面进行刷新操作的时候,此时钩子进入后的to对应的是刷新前的路由。比如,我们在某个页码路由下刷新页面,而恰好这个路由又是异步生成的,那么此时我们挂载好路由表后,而我们的基础路由里又刚好配置了404的路由;那此时就会重定向到404路由。
解决办法:
将404路由也放入异步路由表动态挂载,这样刷新页面后就不会重定向到404,而是会继续留在当前路由下