分享更有价值
被信任是一种快乐

vue-router有多少个钩子

文章页正文上

这篇文章给大家分享的是有关vue-router有多少个钩子的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 有7个钩子:1、beforeEach;2、beforeResolve;3、afterEach;4、beforeEnter;5、beforeRouteEnter;6、beforeRouteUpdate;7、beforeRouteLeave。本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。vue-router 有几种钩子函数?具体是什么及执行流程是怎样的?先上思维导图。vue-router钩子函数 ,其实说的就是 导航守卫 。引用官网的话“导航” 表示路由正在发生改变。vue-router 提供的导航守卫主要用来通过 跳转取消 的方式 守卫导航 。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。也就是:全局守卫路由守卫组件守卫代码演示环境搭建先简单搭建一下环境index.jsmain.js页面A页面B页面C通用组件当前页面是这样的,有点丑,凑活看吧,咱也不是来学习 css 的顾名思义,是要定义在全局的,也就是我们 index.js 中的 router 对象。beforeEach全局前置守卫,在路由跳转前触发,它在 每次导航 时都会触发。通过 router.beforeEach 注册一个全局前置守卫。参数beforeEach 全局前置守卫接收三个参数to: Route: 即将要进入的目标路由对象from: Route: 当前导航正要离开的路由对象next: Function: 一定要调用该方法不然会阻塞路由。注意: next 参数可以不添加,但是一旦添加,则必须调用一次,否则路由跳转等会停止。next()方法的几种情况next(): 进行管道中的下一个钩子。next(false): 中断当前的导航。回到 from 路由对应的地址。next(’/’) 或者 next({ path: ‘/’ }): 跳转到一个不同的地址,可传递的参数与 router.push 中选项一致。next(error): 导航终止,且该错误会被传递给 router.onError() 注册过的回调。我们把前两个参数打印出来看一下,里面包含路径,参数,元信息等内容。返回值false:取消当前的导航。null,undefined,true或者直接return:调用下一个导航守卫。定义多个守卫全局前置守卫可以定义多个,根据创建顺序调用。在所有守卫完成之前导航一直处于等待中。下面这个例子中我们就定义了两个 beforeEach 全局前置守卫。可以看到,只有在两秒以后分别打印出两条日志后才进行页面的跳转。除了 beforeEach 全局前置守卫之外,其他的全局守卫都可以定义多个,并且在所有守卫完成之前导航一直处于等待中,其他的钩子函数就不进行演示了。beforeResolve全局解析守卫,在路由跳转前,所有 组件内守卫异步路由组件 被解析之后触发,它同样在 每次导航 时都会触发。通过 router.beforeResolve 注册一个全局解析守卫。回调参数,返回值免费云主机、域名beforeEach 一样。也可以定义多个全局解析守卫。afterEach全局后置钩子,它发生在路由跳转完成后,beforeEachbeforeResolve 之后,beforeRouteEnter(组件内守卫)之前。它同样在 每次导航 时都会触发。通过 router.afterEach 注册一个全局后置钩子。这个钩子的两个参数和 beforeEach 中的 tofrom 一样。然而和其它全局钩子不同的是,这些钩子不会接受 next 函数,也不会改变导航本身。顾名思义,就是跟路由相关的钩子,我们的路由守卫只有一个,就是 beforeEnterbeforeEnter需要在路由配置上定义 beforeEnter 守卫,此守卫只在进入路由时触发,在 beforeEach 之后紧随执行,不会在 paramsqueryhash 改变时触发。beforeEnter 路由守卫的参数是 tofromnext ,同 beforeEach 一样。顾名思义,是定义在路由组件内部的守卫。beforeRouteEnter路由进入组件之前调用,该钩子在全局守卫 beforeEach 和路由守卫 beforeEnter 之后,全局 beforeResolve 和全局 afterEach 之前调用。参数包括 tofromnext。该守卫内访问不到组件的实例,也就是 thisundefined,也就是他在 beforeCreate 生命周期前触发。beforeRouteUpdate对于 beforeRouteUpdate 来说,this 已经可用了,所以给 next 传递回调就没有必要了。对于 beforeRouteLeave 来说,this 已经可用了,所以给 next 传递回调就没有必要了。导航被触发。在失活的组件里调用 beforeRouteLeave 守卫。调用全局的 beforeEach 守卫。在重用的组件里调用 beforeRouteUpdate 守卫。在路由配置里调用 beforeEnter。解析异步路由组件。在被激活的组件里调用 beforeRouteEnter。调用全局的 beforeResolve 守卫。导航被确认。调用全局的 afterEach 钩子。触发 DOM 更新。调用 beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例会作为回调函数的参数传入。上面是官方给出的答案,现在我们用流程图来直观的展示一下。感谢各位的阅读!关于“vue-router有多少个钩子”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

相关推荐: HTML样式表的书写规则有哪些

这篇文章主要介绍“ HTML样式表的书写规则有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ HTML样式表的书写规则有哪些”文章能帮助大家解决问题。 HTML的元素样式修改有以下的书写规则。关于“ HTML样式表…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册