当前位置:网站首页 > Vue.js开发 > 正文

vue路由守卫(vue路由守卫作用)



路由守卫:就是进入当前路由前,有个人“门卫”进行保护,也可以理解为“安检”。

路由守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。

1.全局路由守卫

全局路由守卫有个两个:一个是全局前置守卫,一个是全局后置守卫 ,钩子函数按执行顺序包括beforeEach、beforeResolve、afterEach三个。

beforeEach:在路由跳转前触发,参数包括to,from,next(参数会单独介绍)3个,这个钩子作用主要是用于登录验证,就是路由还没跳转前告知,跳转后再通知就晚了。

beforeResolve:在组件被解析后,这个钩子函数和beforeEach类似,也是路由跳转前触发,参数也是to,from,next三个。

afterEach:和beforeEach相反,它是在路由跳转完成后触发,参数包括to,from没有next,它发生在beforeEach和beforeResolve之后,beforeRouteEnter之前。




2.组件路由守卫

在Vue组件里有个函数叫作:beforeRouteEnter。就是完成路由守卫的,表示进入当前路由前要做什么?

示例代码中,

beforeRouteEnter:function(to, from, next) {//进入组件前执行。
console.log(to);
console.log(from);
next('/login');//如果加了这句话,就永远进入不了当前组件,因为,无条件跳转到/login
},










完成的是路由守卫的工作,其实上面的代码,没有写路由守卫的逻辑,只是,解释了beforeRouteEnter函数的执行时机和参数的作用:

1、beforeRouteEnter 函数的执行时机,当点击路由连接时,进入组件时,组件还没有显示时执行

2、to:表示当前路由,即要进入的路由

3、from:表示从哪来的,

4、next() 表示下一步要干啥,next('/addGoods')就表示下一步,调到路由 /addGoods

所以,以上代码的执行结果时,如果你要想跳转到当前组件,“没门”,永远进入的都是 /login路由对应的组件。




到此这篇vue路由守卫(vue路由守卫作用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • pcie5.0电源(pcie5.0电源线)2025-09-13 19:00:05
  • js获取天气预报接口(js获取天气预报接口的方法)2025-09-13 19:00:05
  • vue安装教程(vue3.0怎么安装)2025-09-13 19:00:05
  • pcie5.0固态硬盘速度(pcie 5.0固态硬盘)2025-09-13 19:00:05
  • stompJS详解(stomp js)2025-09-13 19:00:05
  • vuejs插槽(vue 插槽)2025-09-13 19:00:05
  • js数组方法(js数组方法改变原数组)2025-09-13 19:00:05
  • 3.vue生命周期钩子函数有哪些?(vue2生命周期钩子函数有哪些)2025-09-13 19:00:05
  • ubuntu配置本地镜像源(ubuntu16.04配置本地镜像源)2025-09-13 19:00:05
  • vue2生命周期(vue2生命周期面试怎么回答)2025-09-13 19:00:05
  • 全屏图片