在vue的h5项目中,登录跳转动态创建路由会出现路由重定义的问题如上图,如果直接在路由守卫router.beforeEach钩子中强制next会出现空白页的问题,是因为该路由dom还未加载,此问题的解决方法可以统一对报错信息进行处理,如下:
在定义路由的index.js文件中处理
import VueRouter from 'vue-router'
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (location, onResolve, onReject) {
if (onResolve || onReject) {
return originalPush.call(this, location, onResolve, onReject)
}
return originalPush.call(this, location).catch(err => err)
}
Vue.use(VueRouter)