navigationcancelled,是因为有拦截吗?

吉云

文题:NavigationCancelled是什么?原因和解决方法大揭秘

内文:

navigationcancelled,是因为有拦截吗?

导语:

各位小伙伴们,大家好!我是你们的忠实小编,今天咱们来聊聊一个困扰了不少小伙伴的—NavigationCancelled。这个报错听起来挺唬人的,但其实弄明白它背后的原理,也不是那么难。接下来,小编就带大家深度剖析一下,保证让大家对它了如指掌。

什么是NavigationCancelled?

答:NavigationCancelled是一个错误信息,通常出现在VueRouter中,表示导航被取消了。简单来说,就是你本来想跳转到某个页面,但是中途被叫停了。

为什么会出现NavigationCancelled?

答:造成NavigationCancelled的原因有很多,比如:

1.路由跳转被中止了。例如,你在写代码的时候,不小心搞了个bug,导致跳转条件不满足。

2.路由被重定向了。这是个常见的操作,比如你在电商网站上想看商品详情,但点击后跳到了登录页面,这就是重定向。

3.VueRouter版本在VueRouter3.0及以上版本中,如果你没有catch错误,就会报NavigationCancelled。

NavigationCancelled和拦截器有什么关系?

答:拦截器是VueRouter提供的一个特性,可以用来拦截路由跳转。如果你在拦截器里做了判断,然后取消了跳转,就会触发NavigationCancelled。

如何解决NavigationCancelled?

答:解决NavigationCancelled的方法主要有:

1.检查代码是否存在bug。

2.修改重定向逻辑。

3.升级VueRouter版本。

4.在拦截器中捕获错误并处理。

一个经典案例

答:我们举个例子,假设你有一个需要用户登录才能访问的页面。为了实现这个功能,你编写了如下代码:

javascript

router.beforeEach((to,from,next)=>{

if(!localStorage.getItem('token')){

next('/login');

}else{

next();

当用户未登录访问受保护页面时,就会触发NavigationCancelled,并且跳转到登录页面。这就是一个典型的拦截器应用场景。

现在,你对NavigationCancelled有了解了吗?如果你还有其他欢迎在评论区留言,小编知无不答。如果你也遇到过类似的也欢迎分享你的解决方法,说不定能给大家提供更多启发。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]