vue router Navigation aborted from XXX to XXX via a navigation guard.

error

代码如下:

router.beforeEach((to, from, next) => {
    if (to.path === "/world_rank") {
        window.open('https://www.baidu.com/', '_blank');
        next(false);
    } else {
        /* 必须调用 `next` */
        next();
    }
})

其他方式,比如route.js 下补充代码,试了,无效果。

查了下官网

next

如果全是通过route进行导航的,那么一定要调用next,进行后续的导航状态操作,比如 对$route的监听等。

上述代码中用next(false)是为了中断当前的导航,不需要进行后续操作。
那么,把 next(false)注掉是不是就可以了呢?
果然,注释掉了不报错了。因为是跳转到外网,并不需要路由操作。

总结

router 中如果有地址是跳转到外网,不需要路由进行后续操作的,不需要加 next方法。

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):