VUE 路由守卫 next() / next({ ...to, replace: true }) / next(‘/‘)

next()

放行

next(’/XXX’)

无限拦截

beforeEach((to, from, next) => {
  beforeEach(('/XXX', from, next) => {
  	 beforeEach(('/XXX', from, next) => {
  	 	 beforeEach(('/XXX', from, next) => {
  	 	 	beforeEac...  // 一直循环下去...... , 因为我们没有使用 next() 放行
 		}
 	 }
  }
}

next({ …to, replace: true })

**…to:**无限访问目标路由(通常用于动态添加路由)
**replace: true :**本次操作后,不能通过浏览器后退按钮,返回前一个路由。
在addRoutes()之后第一次访问被添加的路由会白屏,这是因为刚刚addRoutes()就立刻访问被添加的路由,然而此时addRoutes()没有执行结束,因而找不到刚刚被添加的路由导致白屏。因此需要从新访问一次路由才
行。

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

因此你还需要确保在当addRoutes()已经完成时,所执行到的这一次beforeEach((to, from, next)中有一个正确的next()方向出口。

你可能感兴趣的:(小白前端开发笔记,工作总结,Vue,vue,javascript)