vue中 router.addRoute()动态添加路由,刷新页面404

最近在整改动态路由的问题,不少坑困惑了我很久

废话不多说直接上坑:

第一部坑:router.addRoute()后的路由,router.options.routes是获取不到最新路由的,误导我一直认为添加路由失败,添加不进去,其实已经存在了!! router.getRoutes()方法可以查看

第二部坑:在路由守卫中,错误的next()会导致循环调用导致内存溢出,所以要合理的正确的写判断条件和next(),   为此我研究了很久next()

// next()  next('/')  next({...to,repalce,true})
// 三个next意义都是不一样的  并不是next()都代表出口
// next(参数)  都代表中断当中的全局前置守卫,执行新的全局前置守卫

// 比如你以为直接进入登录页
beforeEach((to, from, next) => {
  next('/login')
}
//实际上执行的过程代码
beforeEach((to, from, next) => {
  beforeEach(('/logon', from, next) => {
  	 beforeEach(('/logon', from, next) => {
  	 	 beforeEach(('/logon', from, next) => {
  	 	 	beforeEach...  // 一直循环下去...... , 因为我们没有使用 next() 放行
 		}
 	 }
  }
}

第三个坑:那就是404

很多项目都会写404  但是!!  404不能写在静态路由中,因为匹配动态路由时会直接进入404,就算你成功添加了动态路由,因为顺序 直接进入了404

所以!  404要在动态路由添加完毕后  再添加404

然后我终于成功了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值