路由钩子函数

JavaScript022

路由钩子函数,第1张

全局钩子函数:

beforeEach:

beforeEach一共接收三个参数,分别是to、from、next;to:即将进入的路由对象;from:正要离开的路由对象;next:路由的控制参数;

next一共有四种调用方式:

next():一切正常调用这个方法进入下一个钩子;

next(false):取消路由导航,这时的url显示的是正要离开的路由地址;

next('/login'):当前路由被终止,进入一个新的路由导航(路由地址可以自由指定)

next(error):路由导航终止并且错误会被传递到router.onError()注册过的回调中;

我们一般是用全局钩子来控制权限,像什么进页面没有登录就跳登录页,需要用户达到什么级别才能访问当前页面都是属于页面权限控制,都是可以通过beforeEach钩子函数来实现

AfterEach:

AfterEach和beforeEach一样都是属于全局守卫钩子,都是在main.js中进行调用;其中AfterEach比beforeEach少一个next参数;

to:即将要进入的路由对象;

from:正要离开的路由对象;

afterEach()我们一般用来重置页面滚动条位置:

假如我们有一个页面很长,滚动后其中的某个位置后跳转,这时新的页面的滚动条位置就会在上一个页面停留的位置;这个时候我们就可以利用afterEach进行重置:

组件内的钩子函数:

beforeRouteEnter(to,from,next):

在路由进入前调用,因为此时的vue实例还没有创建,所以beforeEnter是唯一一个不能使用this的钩子函数;

to:即将要进入的路由对象;

from:正要离开的路由对象;

next:路由控制参数

beforeRouteUpdate(to,from,next):

在路由发生修改的时候进行调用,比如我们上一篇文章讲到的动态路由传参,这种情况我们的beforeRouteUpdate也是会被调用的;

to:即将要进入的路由对象;

from:正要离开的路由对象;

next:路由控制参数;

beforeRouteLeave(to,from,next):

在路由离开该组件时调用;

to:即将要进入的路由对象;

from:正要离开的路由对象;

next:路由控制参数

注意:beforeRouteEnter因为触发的时候vue实例还没有创建,所以这个钩子函数中不能使用this,而beforeRouteUpdate和beforeRouteLeave都是可以访问到实例的,因为当这两个函数触发的时候实例都已经被创建了;

vue.js created是它的一个生命周期钩子函数,就是一个vue实例被生成后调用这个函数。Vue.js是一个构建数据驱动的web界面的渐进式框架,

一个vue实例被生成后还要绑定到某个html元素上,之后还要进行编译,然后再插入到document中。每一个阶段都会有一个钩子函数,方便开发者在不同阶段处理不同逻辑。

扩展资料

Vue.js:

读音 [vju:]。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。

另一方面,当与单文件组件和 Vue 生态系统支持的库结合使用时,Vue 也完全能够为复杂的单页应用程序提供驱动。

Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动复杂的单页应用。

参考资料来源:百度百科——Vue.js

(一)全局的 beforeEach:前置钩子函数 三个参数: to :路由将要跳转的路劲信息,信息是包含在对象里边的 from:路由跳转前的路由信息,也是一个对象的形式 next:路由的控制参数,常用的有next(true)和next(false)决定要不要跳转 使用场景:未登录去下单,跳转到登录页面 2.afterEach:后置钩子函数 两个参数:没有next to:去哪 from:从哪里来 使用场景:改变浏览器title (二)单个路由独享的 1.beforeEnter 有三个参数: to:路由将要跳转的路劲信息,信息是包含在对象里边的 from:路由跳转前的路由信息,也是一个对象的形式 next:路由的控制参数,常用的有next(true)和next(false) 在路由配置文件(/src/router/index.js)中写钩子函数 (三)组件级的 1.beforeRouteEnter  :  在路由进入前的钩子函数  不能获取组件实例  ‘this’  这时组件 this 还没有被创建 使用场景:进入这个路由前你要做什么初始化操作 2.beforeRouteUpdate  :  当前路由改变,改组件被复用时   可以访问组件  ‘this’ 使用场景:对于一个带有动态路由参数的路径/box/:id  ,在/box/b 和/box/c  之间跳转的时候由于会渲染同样的组件Box,因此组件实例会被复用,这个钩子函数在这种情况下会被调用 3.beforeRouteLeave  :  离开路由前的钩子函数,可以访问组件实例 ‘this’  使用场景:清除定时器等等