文题: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有了解了吗?如果你还有其他欢迎在评论区留言,小编知无不答。如果你也遇到过类似的也欢迎分享你的解决方法,说不定能给大家提供更多启发。