iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么理解Vue-Router中的导航钩子
  • 667
分享到

怎么理解Vue-Router中的导航钩子

2023-06-25 13:06:14 667人浏览 薄情痞子
摘要

这篇文章主要讲解了“怎么理解Vue-Router中的导航钩子”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Vue-Router中的导航钩子”吧!导航守卫“导航”表示路由正在发生改变。

这篇文章主要讲解了“怎么理解Vue-Router中的导航钩子”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Vue-Router中的导航钩子”吧!

怎么理解Vue-Router中的导航钩子

导航守卫

“导航”表示路由正在发生改变。

vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。

1.全局前置守卫----router.beforeEach

router.beforeEach 注册一个全局前置守卫:

const router = new VueRouter({ ... })router.beforeEach((to, from, next) => {  //  to:要去哪个页面  //  from:从哪里来  //  next:它是一个函数。  //     如果直接放行 next()  //     如果要跳到其它页 next(其它页)})

示例代码:

router.beforeEach(async(to, from, next) => {  NProgress.start() // 开启进度条  const token = store.state.user.token  const userId = store.state.user.userInfo.userId  console.log(token, to.path, from.path)  if (token) {    if (to.path === '/login') { // 有 token还要去login      next('/')      NProgress.done() // 关闭进度条    } else { // 有 token,去其他页面,放行      if (!userId) {        await store.dispatch('user/getUserInfo')      }      next()    }  } else {    if (to.path === '/login') { // 没有token,去login,放行      next()    } else {      next('/login') // 没有token,去其他页面      NProgress.done()    }  }})

小结

  • router.beforeEach(回调(三个参数))

  • 导航守卫函数中,一定要调用next( )

  • to.path: to是一个路由对象,path表示路径,是它的一个属性

2. 全局后置钩子----router.afterEach

router.afterEach 注册一个全局后置钩子:

你也可以注册全局后置钩子,然而和守卫不同的是,这些钩子不会接受 next 函数也不会改变导航本身:

router.afterEach((to, from) => {  // ...})

3. 全局解析守卫----router.beforeResolve

在 2.5.0+ 你可以用 router.beforeResolve 注册一个全局守卫。这和 router.beforeEach 类似,区别是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就被调用。

4.路由独享的守卫

你可以在路由配置上直接定义 beforeEnter 守卫:

const router = new VueRouter({  routes: [    {      path: '/foo',      component: Foo,      beforeEnter: (to, from, next) => {        // ...      }    }  ]})

5.组件内的守卫

  • beforeRouteEnter

  • beforeRouteUpdate (2.2 新增)

  • beforeRouteLeave

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

完整的导航解析流程

  • 导航被触发。

  • 在失活的组件里调用 beforeRouteLeave 守卫。

  • 调用全局的 beforeEach 守卫。

  • 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。

  • 在路由配置里调用 beforeEnter

  • 解析异步路由组件。

  • 在被激活的组件里调用 beforeRouteEnter

  • 调用全局的 beforeResolve 守卫 (2.5+)。

  • 导航被确认。

  • 调用全局的 afterEach 钩子。

  • 触发 DOM 更新。

  • 调用 beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例会作为回调函数的参数传入。

感谢各位的阅读,以上就是“怎么理解Vue-Router中的导航钩子”的内容了,经过本文的学习后,相信大家对怎么理解Vue-Router中的导航钩子这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么理解Vue-Router中的导航钩子

本文链接: https://www.lsjlt.com/news/305124.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么理解Vue-Router中的导航钩子
    这篇文章主要讲解了“怎么理解Vue-Router中的导航钩子”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Vue-Router中的导航钩子”吧!导航守卫“导航”表示路由正在发生改变。...
    99+
    2023-06-25
  • vue-router的导航钩子怎么用
    这篇文章主要讲解了“vue-router的导航钩子怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue-router的导航钩子怎么用”吧! vue-...
    99+
    2024-04-02
  • vue-router导航钩子怎么用
    这篇文章主要介绍vue-router导航钩子怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消。全局钩子1、...
    99+
    2024-04-02
  • vue-router的导航钩子有哪些
    vue-router的导航钩子有:1.全局导航钩子;2.组件内的钩子;3.单独路由独享组。vue-router的导航钩子有三种,分别是:1.全局导航钩子;2.组件内的钩子;3.单独路由独享组,主要是用来拦截导航,让他完成跳转或取消,以下是导...
    99+
    2024-04-02
  • vue导航钩子怎么用
    这篇文章将为大家详细讲解有关vue导航钩子怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。导航钩子正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它...
    99+
    2024-04-02
  • vue的导航钩子有哪几个
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。导航钩子的作用vue-router提供的导航钩子主要用来拦截导航,让它完成跳转或取消。导航钩子的分类全局守卫路由独享守卫局部守卫1、全局守卫是指路由示例上直接操作的钩子函...
    99+
    2023-05-14
    导航钩子 Vue
  • vue的导航钩子有哪些及怎么使用
    本篇内容主要讲解“vue的导航钩子有哪些及怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue的导航钩子有哪些及怎么使用”吧!vue的导航钩子有3种:1、全局守卫钩子,是指路由示例上直接...
    99+
    2023-07-04
  • vue-router的导航守卫怎么使用
    这篇文章主要介绍了vue-router的导航守卫怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue-router的导航守卫怎么使用文章都会有所收获,下面我们一起来看看吧。前言在浏览器中点击链接实现导航...
    99+
    2023-07-04
  • vue中的mounted钩子怎么用
    这篇文章主要为大家展示了“vue中的mounted钩子怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中的mounted钩子怎么用”这篇文章吧。注:阅读本文需要对vue的patch流程...
    99+
    2023-06-29
  • vue-router中的钩子函数和执行顺序是什么
    这篇文章主要讲解了“vue-router中的钩子函数和执行顺序是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue-router中的钩子函数和执行顺序是什么”吧!一:全局导航钩子函数1...
    99+
    2023-07-02
  • vue-router中的钩子函数和执行顺序说明
    目录一:全局导航钩子函数1、vue router.beforeEach(全局前置守卫)2、vue router.afterEach(全局后置守卫)二:路由独享的守卫(路由内钩子)三:...
    99+
    2024-04-02
  • vue-router的导航守卫使用最新讲解
    目录前言vue-router中编程式导航API导航守卫全局守卫独享路由守卫组件路由守卫前言 在浏览器中点击链接实现导航的方式,叫做声明式导航。例如:普通网页中点击<a>链...
    99+
    2022-12-16
    vue-router导航守卫 vue-router导航守卫使用
  • VUE 嵌套路由的守卫钩子:控制导航和数据流
    守卫类型 Vue.js 提供了三种类型的守卫钩子,它们在路由解析的生命周期中的不同阶段触发: 全局守卫:应用于所有路由 每个路由守卫:应用于特定路由或其嵌套子路由 组件内守卫:应用于特定组件的导航钩子 导航守卫: 导航守卫控制路由之间...
    99+
    2024-04-02
  • Vue中钩子函数怎么用
    小编给大家分享一下Vue中钩子函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Vue 中可以把一系列复杂的操作包装为一...
    99+
    2024-04-02
  • 使用vue-router钩子函数怎么实现路由守卫
    这篇文章给大家介绍使用vue-router钩子函数怎么实现路由守卫,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。全局钩子函数beforeEach:beforeEach一共接收三个参数,分别是to、from、next;t...
    99+
    2023-06-14
  • Vue中callHook钩子函数怎么调用
    这篇“Vue中callHook钩子函数怎么调用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue中callHook钩子函数...
    99+
    2023-07-04
  • Vue中的路由导航守卫导航解析流程
    目录全局前置守卫全局解析守卫全局后置钩子路由独享的守卫组件内的守卫可用的配置 API使用组合 API完整的导航解析流程正如其名,vue-router 提供的导航守卫主要用来通过跳转或...
    99+
    2023-05-16
    Vue路由导航守卫 Vue路由守卫
  • 如何解决vue-router 二级导航默认选中某一选项的问题
    这篇文章主要介绍如何解决vue-router 二级导航默认选中某一选项的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!现在有一个需求是这样的:这个需求很正常吧! 二级导航条,不是...
    99+
    2024-04-02
  • Vue中callHook钩子函数的作用是什么
    这期内容当中小编将会给大家带来有关Vue中callHook钩子函数的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Vue实例在不同的生命周期阶段,都调用了cal...
    99+
    2024-04-02
  • php中关于hook(钩子)的简单理解
    假设你有一套登录注册业务。一开始很简单,老板说只需要常规的注册登录就行。 但是到了后面,接口被刷,老板然你在注册登录前加个验证码 然后没过多久,老板又说,当用户注册时,我们给用户的邮箱或者手机发一条欢迎短信或者邮件吧 还没过上多久,老...
    99+
    2023-09-18
    java 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作