详述Vue

您所在的位置:网站首页 vue-router钩子 详述Vue

详述Vue

2023-05-26 10:06| 来源: 网络整理| 查看: 265

vue-router的钩子函数,其实说的就是导航守卫,引用官方的话,"导航"表示路由正在发生改变,vue-router提供的导航守卫主要用来通过跳转或取消的方式守卫导航,有多种机会植入路由导航过程中:全局的,单个路由独享的,或者组件级的,也就是:全局守卫、路由守卫、组件守卫

全局守卫

****beforeEach:全局前置守卫,在路由跳转前触发,它在每次导航时都会触发

beforeResolve:全局解析守卫,在路由跳转前,所有组件内守卫和异步路由组件被解析之后触发,它同样在每次导航时都会触发

afterEach:全局后置钩子,它发生在路由跳转完成后,beforeEach和beforeResolve之后,beforeRouteEnter(组件内守卫)之前,它同样在每次导航时都会触发。

路由守卫

****beforeEnter:需要在路由配置上定义beforeEnter守卫,此守卫只在进入路由时触发,在beforeEach之后紧随执行,不会再params、query或hash改变时触发

组件守卫

beforeRouteEnter:路由进入组件之前调用,该钩子在全局守卫beforeEach和路由守卫beforeEnter之后,全局beforeResolve和全局afterEach之前调用

beforeRouteUpdate:路由发生改变之前调用

beforeRouteLeave:路由离开组件前调用

完整的导航解析流程

导航被触发 → 在失活的组件里调用beforeRouteLeave守卫 → 调用全局的beforeEach守卫 → 在重用的组件里调用beforeRouteUpdate守卫 → 在路由配置里调用beforeEnter → 解析异步路由组件 → 在被激活的组件里调用beforeRouteEnter → 调用全局的beforeResolve守卫 → 导航被确认 → 调用全局的aterEach钩子 → 触发DOM更新 → 调用beforeRouteEnter守卫中传给next的回调函数,创建好的组件实例会作为回调函数的参数传入



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3