在Vue2.X中使用路由和钩子函数

下面我就为大家分享一篇基于vue2.x路由钩子函数详解,具有很好的参考价值,希望对大家有所帮助。

最近上班有些忙,好久没有更新文章,也没学习新的东西。

今天来说说这个路由钩子吧。

导航和钩子函数:

导航:路由正在发生改变 关键字:路由 变

立即学习“前端免费学习笔记(深入)”;

钩子函数:在路由切换的不同阶段调用不同的节点函数(钩子函数在我看来也就是:某个节点和时机触发的函数)。

钩子函数 主要用来拦截导航,让它完成跳转或取消,在导航的不同阶段来执行不同的函数 ,最后钩子函数的执行结果会告诉导航怎么做。。

导航在所有钩子 resolve 完之前一直处于 等待中,等待钩子函数告诉它下一步该怎么做。用next()来指定。

我来给大家举个登陆的例子

router.beforeEach(({meta, path}, from, next) => {      const {auth = true} = meta  // meta代表的是to中的meta对象,path代表的是to中的path对象    var isLogin = Boolean(store.state.user.id) // true用户已登录, false用户未登录       if (auth && !isLogin && path !== '/login') { // auth 代表需要通过用户身份验证,默认为true,代表需要被验证, false为不用检验     return next({ path: '/login' }) // 跳转到login页面   }     next() // 进行下一个钩子函数 })

登录后复制

先说这个beforeEach的钩子函数,它是一个全局的before 钩子函数, (before each)意思是在 每次每一个路由改变的时候都得执行一遍。

它的三个参数:

to: (Route路由对象) 即将要进入的目标 路由对象 to对象下面的属性: path params query hash fullPath matched name meta(在matched下,但是本例可以直接用)

from: (Route路由对象) 当前导航正要离开的路由

next: (Function函数) 一定要调用该方法来 resolve 这个钩子。 调用方法:next(参数或者空) ***必须调用

next(无参数的时候): 进行管道中的下一个钩子,如果走到最后一个钩子函数,那么 导航的状态就是 confirmed (确认的)

next(‘/’) 或者 next({ path: ‘/’ }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。

全局钩子函数之 全局的afterEach钩子:

after 钩子没有 next 方法,不能改变导航,代表已经确定好了导航怎么去执行后,附带的一个执行钩子函数

组件内的钩子函数:( beforeRouteEnter 和 beforeRouteLeave 再加一个 watch函数 )

vue2.X的组件内钩子函数比vue1.X减少了许多。。

使用组件自身的生命周期钩子函数来替代 activate 和 deactivate

在 $router 上使用 watcher 来响应路由改变

canActivate 可以被 router 的配置中的 beforeEnter 中实现

canDeactivate 已经被 beforeRouteLeave 取代, 后者在一个组件的根级定义中指定。这个钩子函数在调用时是将组件的实例作为其上下文的。

canReuse 已经被移除,因其容易混淆且很少被用到。

用ajax获取数据的data(to, from, next) 钩子用组件内 beforeRouteEnter (to, from, next)来替代

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在vue-cli项目中proxyTable跨域问题

在vue-cli项目中proxyTable跨域问题

在vue-cli项目中proxyTable跨域问题

以上就是在Vue2.X中使用路由和钩子函数的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3188030.html

(0)
上一篇 2025年3月31日 23:23:15
下一篇 2025年3月31日 23:23:25

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 诺富特酒店携巴黎圣日耳曼揭幕中国独家诺富特球星套房

    诺富特酒店携手巴黎圣日耳曼,推出主题套房,致敬传奇球星阿内尔卡! 上海建滔诺富特酒店隆重推出“诺富特球星套房”,这是继巴黎王子公园球场之后,诺富特与巴黎圣日耳曼合作的又一力作。此次主题套房以巴黎圣日耳曼传奇球星尼古拉·阿内尔卡为灵感,致敬其…

    2025年4月1日
    100
  • 从茶园到茶杯!斗记普洱茶庄园扎根云南,百年愿景引领行业新未来

    云南勐海:斗记普洱茶庄园盛大落成,开启茶产业新纪元! 2025年3月23日至25日,斗记普洱茶庄园在云南西双版纳勐海县正式落成,并隆重举办了服务商大会。这标志着斗记品牌在茶行业深耕二十余载后,再次以创新引领行业发展,展现出强大的生命力和远大…

    2025年4月1日 互联网
    100
  • Angular路由实战案例应用

    这次给大家带来Angular路由实战案例应用,Angular路由使用的注意事项有哪些,下面就是实战案例,一起来看一下。 序言: Angular APP 视图之间的跳转,依赖于 Router (路由),这一章,我们来讲述 Router 的应用…

    2025年3月31日
    100
  • keep-alive控制服务器请求次数

    这次给大家带来keep-alive控制服务器请求次数,keep-alive控制服务器请求次数的注意事项有哪些,下面就是实战案例,一起来看一下。 VUE2.0中提供了一个keep-alive方法,可以用来缓存组件,避免多次加载相应的组件,减少…

    编程技术 2025年3月31日
    100
  • php如何使用CakePHP框架?

    在现代web开发中,使用mvc框架能够大大提高开发效率和代码可维护性。cakephp是一款基于mvc设计模式的php框架,其易用性和灵活性使得它受到了许多开发者的喜爱。在这篇文章中,我们将介绍如何使用cakephp框架来开发web应用程序。…

    编程技术 2025年3月30日
    100
  • 如何在ThinkPHP6中使用路由

    thinkphp6是一款强大的php框架,拥有便捷的路由功能,可以轻松实现url路由配置;同时,thinkphp6还支持多种路由模式,如get、post、put、delete等等。本文将介绍如何使用thinkphp6进行路由配置。 一、Th…

    编程技术 2025年3月30日
    100
  • Yii框架中的路由:实现URL美化

    yii框架是一个开源的高性能web应用开发框架,它基于mvc的设计模式,可以帮助开发者快速构建可扩展的web应用程序。在yii框架中,路由是非常重要的一个概念。路由的作用是将从客户端请求过来的url映射到相应的控制器和动作。 在传统的Web…

    编程技术 2025年3月30日
    100
  • uniapp中路由的动态添加与删除方法

    Uniapp是一个基于Vue.js的跨端框架,支持一次编写,同时生成H5、小程序、APP等多端应用,并且在开发过程中十分注重性能和开发效率。在Uniapp中,路由的动态添加与删除是开发过程中经常会遇到的问题,因此本文将介绍Uniapp中路由…

    2025年3月30日
    100
  • vue路由守卫有哪三种类型

    vue中路由守卫一共有三种,分别为:全局路由守卫(全局前置守卫、全局后置守卫),组件内路由守卫,路由独享守卫(是在路由配置页面单独给路由配置的一个守卫)。 本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。 路由…

    2025年3月30日
    100
  • Vue 中使用编程式路由实现自动跳转的技巧

    vue 是一款流行的前端框架,拥有很多方便快捷的功能来帮助开发人员实现更好的开发体验。其中,编程式路由是 vue 中值得我们探讨的一个功能,它可以让我们在实现自动跳转的时候更加灵活。 编程式路由是指通过编写代码手动导航到不同的路由。与之相对…

    编程技术 2025年3月30日
    100

发表回复

登录后才能评论