Vue:router的beforeEach与afterEach钩子函数

清疚 2022-10-02 12:55 214阅读 0赞

在路由跳转的时候,我们需要一些权限判断或者其他操作。这个时候就需要使用路由的钩子函数。

定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数。

总体来讲vue里面提供了三大类钩子,两种函数
1、全局钩子
2、某个路由的钩子
3、组件内钩子

两种函数:

1、Vue.beforeEach(function(to,form,next){}) /在跳转之前执行/

2.Vue.afterEach(function(to,form))/在跳转之后判断/

全局钩子函数

顾名思义,它是对全局有效的一个函数

  1. router.beforeEach((to, from, next) => {
  2. let token = router.app.$storage.fetch("token");
  3. let needAuth = to.matched.some(item => item.meta.login);
  4. if(!token && needAuth) return next({path: "/login"});
  5. next();
  6. });

beforeEach函数有三个参数:

to:router即将进入的路由对象
from:当前导航即将离开的路由
next:Function,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的);否则为false,终止导航。
afterEach函数不用传next()函数

某个路由的钩子函数

顾名思义,它是写在某个路由里头的函数,本质上跟组件内函数没有区别。

  1. const router = new VueRouter({
  2. routes: [
  3. {
  4. path: '/login',
  5. component: Login,
  6. beforeEnter: (to, from, next) => {
  7. // ...
  8. },
  9. beforeLeave: (to, from, next) => {
  10. // ...
  11. }
  12. }
  13. ]
  14. })

路由组件的钩子

注意:这里说的是路由组件!

路由组件 属于 组件,但组件 不等同于 路由组件!所谓的路由组件:直接定义在router中component处的组件。如:

  1. var routes = [
  2. {
  3. path:'/home',
  4. component:home,
  5. name:"home"
  6. }
  7. ]

在子组件中调用路由的钩子函数时无效的。

在官方文档上是这样定义的:

可以在路由组件内直接定义以下路由导航钩子
beforeRouteEnter
beforeRouteUpdate (2.2 新增)
beforeRouteLeave

这里简单说下钩子函数的用法:它是和data,methods平级的。

  1. beforeRouteLeave(to, from, next) {
  2. next()
  3. },
  4. beforeRouteEnter(to, from, next) {
  5. next()
  6. },
  7. beforeRouteUpdate(to, from, next) {
  8. next()
  9. },
  10. data:{},
  11. method: {}

转自:https://www.cnblogs.com/WQLong/p/8135553.html

发表评论

表情:
评论列表 (有 0 条评论,214人围观)

还没有评论,来说两句吧...

相关阅读

    相关 VUE 钩子函数

    “Vue钩子函数就是指在一个Vue实例从创建到销毁的过程自动执行的函数。” 引用知乎 [SpiritTracks][] 作者的话 “ 就是在生命周期执行流程中预留的一个能让我

    相关 JVM钩子函数

    1. 虚拟机退出:JVM会在所有非后台线程关闭后才会退出,如在一个main线程里新产生一个线程,而该线程阻塞了,那么虚拟机不会退出。后台线程会在所有非后台线程退出后都停止任务

    相关 vue钩子函数

    `vue`钩子函数 > 虽然文档已经很详细啦,但是总结一下加深一下理解与记忆(以官方文档为参考整理的~) 1. 路由导航守卫 > 有时候,我们需要通过路由来进行一

    相关 Vue:routerbeforeEachafterEach钩子函数

    在路由跳转的时候,我们需要一些权限判断或者其他操作。这个时候就需要使用路由的钩子函数。 定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数。 总体来

    相关 JVM钩子函数

    虚拟机退出:JVM会在所有非后台线程关闭后才会退出,如在一个main线程里新产生一个线程,而该线程阻塞了,那么虚拟机不会退出。后台线程会在所有非后台线程退出后都停止任务。