Vue动态路由的页面刷新的问题
使用动态路由时,刷新页面容易出现问题。是因为路由跳转的机制。
- 只要在app.use(router);之后,就会进行导航。
- 在进入路由守卫之前,就会判断路由是否存在。(即使在路守卫中动态路由成功添加,仍然会导航失败。)
这会导致,页面刷新之后,main.js中的动态路由添加还未完成(在路由守卫时才添加完成。或者更靠后的时间)但由于在进入路由守卫之前就会判断路由是否存在。就会导致第一次导航(根据路由请求页面)必然失败。
解决方案:
- 网上流行的解决方案:在第一次导航时,手动添加动态路由,或者等待main.js的动态路由添加操作结束之后。(总之,确保动态路由添加完成)重新进行一次导航。(仅在第一次需要重新导航,不然就会重新导航进入路由守卫,然后又重新导航,又进入路由守卫,死循环)
- 更优解:在main.js的app.use(router);之前就完成添加动态路由添加操作。因为导航必然是app.use(router);之后才进行的,这样就能确保导航是在动态路由添加完成后进行的。
关于判定第一次导航,以及重新导航。还有动态路由添加等操作,大家估计大多数都会。不会的问一下ai吧。不难,这里就不讲了。主要给大家讲一下为什么会出问题,以及大致解决方案。
如果有帮助,帮忙捧个场吧。
