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’ 使用场景:清除定时器等等