vue 动态添加路由 router.addRoutes() 死循环、页面刷新空白BUG

566 阅读1分钟

1、由于子路由都是动态追加的,当界面刷新的时候,其实我们路由里面并没有该子界面的配置,所以就是404咯,也就是空白咯。

2、next({ …to, replace: true })中的replace: true只是一个设置信息,告诉VUE本次操作后,不能通过浏览器后退按钮,返回前一个路由。

      因此next({ …to, replace: true })可以写成next({ …to }),不过你应该不希望用户在addRoutes()还没有完成的时候,可以点击浏览器回退按钮搞事情吧。

3、如果参数to不能找到对应的路由的话,就再执行一次beforeEach((to, from, next)直到其中的next({ …to})能找到对应的路由为止。

4、  beforeEach 必须有next() 否则会出现死循环

5、 404页面的路由要在异步路由之后追加,否则会出现异步路由加载的页面刷新之后到404页面的问题,因为404页面先于异步加载的路由一步被匹配到