路由钩子函数分为三种:

全局前置守卫 router.beforeEach全局解析守卫 router.beforeResolve全局后置钩子 router.afterEach路由独享的守卫 beforeEnter组件内的守卫 beforeRouteEnter   beforeRouteUpdate    beforeRouteLeave

1:全局钩子:

全局前置守卫 beforeEach

const router = createRouter({ ... })router.beforeEach((to, from) => {// ...// 返回 false 以取消导航return false
})

全局解析守卫 beforeResolve

这和 router.beforeEach 类似,因为它在 每次导航时都会触发,但是确保在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就被正确调用

router.beforeResolve(async to => {if (to.meta.requiresCamera) {try {await askForCameraPermission()} catch (error) {if (error instanceof NotAllowedError) {// ... 处理错误,然后取消导航return false} else {// 意料之外的错误,取消导航并把错误传给全局处理器throw error}}}
})

router.beforeResolve 是获取数据或执行任何其他操作(如果用户无法进入页面时你希望避免执行的操作)的理想位置。

2:单个路由里面的钩子: beforeEnter

const routes = [{path: '/users/:id',component: UserDetails,beforeEnter: (to, from) => {// reject the navigationreturn false},},
]

beforeEnter 守卫 只在进入路由时触发,不会在 paramsquery 或 hash 改变时触发。例如,从 /users/2 进入到 /users/3 或者从 /users/2#info 进入到 /users/2#projects。它们只有在 从一个不同的 路由导航时,才会被触发。

你也可以将一个函数数组传递给 beforeEnter,这在为不同的路由重用守卫时很有用:

3:  组件路由:beforeRouteEnter、 beforeRouteUpdate、 beforeRouteLeave

const UserDetails = {template: `...`,beforeRouteEnter(to, from) {// 在渲染该组件的对应路由被验证前调用// 不能获取组件实例 `this` !// 因为当守卫执行时,组件实例还没被创建!},beforeRouteUpdate(to, from) {// 在当前路由改变,但是该组件被复用时调用// 举例来说,对于一个带有动态参数的路径 `/users/:id`,在 `/users/1` 和 `/users/2` 之间跳转的时候,// 由于会渲染同样的 `UserDetails` 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。// 因为在这种情况发生的时候,组件已经挂载好了,导航守卫可以访问组件实例 `this`},beforeRouteLeave(to, from) {// 在导航离开渲染该组件的对应路由时调用// 与 `beforeRouteUpdate` 一样,它可以访问组件实例 `this`},
}

Vue 路由钩子函数相关推荐

  1. before vue路由钩子_vue组件级路由钩子函数介绍,及实际应用

    正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消. 有多种方式可以在路由导航发生时执行钩子:全局的.单个路由独享的.或者组件级的. 一.全局钩子 你可以使用 rout ...

  2. vue组件级路由钩子函数介绍,及实际应用

    正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消. 有多种方式可以在路由导航发生时执行钩子:全局的.单个路由独享的.或者组件级的. 一.全局钩子 你可以使用 rout ...

  3. vue进入页面执行的钩子函数_深入理解Vue 的钩子函数

    前言 说到Vue的钩子函数,可能很多人只停留在一些很简单常用的钩子( created , mounted ),而且对于里面的区别,什么时候该用什么钩子,并没有仔细的去研究过,且Vue的生命周期在面试中 ...

  4. vue进入页面执行的钩子函数_解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题...

    项目需求:图片加载时,当鼠标滚动至当前图片进行加载并加上上滑特效,实现这个效果需要对文档文档滚动位置和图片的当前位置进行比较.但是mounted 钩子函数执行时img图片并未加载出来也就是占位为空,导 ...

  5. “约见”面试官系列之常见面试题之第七十六篇之vue-router中的路由钩子函数基本用法 (建议收藏)

    vue-router中的路由钩子函数基本用法 路由钩子函数分为三种类型如下: 第一种:全局钩子函数. router.beforeEach((to, from, next) => { consol ...

  6. Vue的钩子函数是什么意思?Vue都有哪些钩子函数?

    Vue的钩子函数是什么意思?Vue都有哪些钩子函数? Vue钩子函数就是指在一个Vue实例从创建到销毁的过程自动执行的函数. beforeCreate:在Vue实例创建之前执行. Created:在V ...

  7. c语言中的钩子函数,生命周期(vue的钩子函数)

    生命周期图示 创建前,创建后,挂载前,挂载后,更新前,更新后,销毁前,销毁后 beforeCreate:function(){ console.log('1-beforeCreate 组件还未被创建' ...

  8. Vue 路由知识三(过渡动画及路由钩子函数)

    路由的过渡动画:让路由有过渡动画,需要在<router-view>标签的外部添加<transition>标签,标签还需要一个name属性. <transition nam ...

  9. vue的钩子函数created以及mounted的示意(转载)

    这是它的一个生命周期钩子函数,就是一个vue实例被生成后调用这个函数.一个vue实例被生成后还要绑定到某个html元素上,之后还要进行编译,然后再插入到document中.每一个阶段都会有一个钩子函数 ...

最新文章

  1. 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法
  2. VC++对话框学习总结
  3. CSP认证201709-4 通信网络[C++题解]:dfs、建立两张图:正向建图和反向见图、统计联通点的个数
  4. 卡尔曼滤波器学习笔记(二)
  5. 程序媛计划——python数据库
  6. Docker+Nginx部署Angular国际化i18n
  7. 梳理一下自己的技术关注面[转]
  8. 稀土储量由80%变成了35%?这是何等的。。。
  9. Windows下的网络编程
  10. qt mysql图形界面_qt数据库界面
  11. flex横向纵向间距,自适应排列
  12. 给你的Blog加条小金鱼
  13. Java面试题(外包公司)
  14. 影石创新IPO被暂缓审议,科创板上市委质疑其可能存在董事会僵局
  15. 28个数据可视化图表的总结和介绍
  16. jeeplus多商户商城,分销商城
  17. 外边剧自动html怎么写,问题写剧本的HtmlUnit为YUI形式提交
  18. Centos7安装Certbot
  19. ubuntu 打印git邮箱_安装Ubuntu后需要做的事
  20. wps文档被锁定后怎么解锁呢?

热门文章

  1. Redis思维导图笔记——服务器
  2. 【步兵 cocos2dx】热更新(上)
  3. OnsenUI - 专为混合开发/手机 web 应用打造的开源移动端 UI 组件库
  4. windbg调试 wow64 内核dump
  5. 【PAT B-1037】在霍格沃茨找零钱
  6. 数字化转型:服务化设计原则
  7. 定时器计时不准问题 #Maximum Allowed Timestep
  8. 虚拟机安装详细图解教程及使用教程
  9. 【排序算法】选择排序(C语言)
  10. 蓝桥杯真题31日冲刺国一 | 每日题解报告 第十七天