beforeEach实现路由跳转验证功能

这次给大家带来beforeEach实现路由跳转验证功能,beforeEach实现路由跳转验证的注意事项有哪些,下面就是实战案例,一起来看一下。

路由跳转前做一些验证,比如登录验证(未登录去登录页),是网站中的普遍需求。对此,vue-route 提供的 beforeRouteUpdate 可以方便地实现导航守卫(navigation-guards)。

导航守卫(navigation-guards)这个名字,听起来怪怪的,但既然官方文档是这样翻译的,就姑且这么叫吧。

贴上文档地址:https://router.vuejs.org/zh-cn/advanced/navigation-guards.html

先来摘抄一段文档中beforeRouteUpdate 的用法:

你可以使用 router.beforeEach 注册一个全局前置守卫:

const router = new VueRouter({ ... }) router.beforeEach((to, from, next) => {  // ... })

登录后复制

当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于 等待中。

每个守卫方法接收三个参数:

to: Route: 即将要进入的目标 路由对象

from: Route: 当前导航正要离开的路由

next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。

next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。

next(false): 中断当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。

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

next(error): (2.4.0+) 如果传入 next 的参数是一个 Error 实例,则导航会被终止且该错误会被传递给 router.onError() 注册过的回调。

确保要调用 next 方法,否则钩子就不会被 resolved。

下面写一个例子,上一篇博客中我们的账户页,包括课程和订单,都需要在跳转前判断是不是已登录;已登录的情况再去登录页,跳转至首页:

const vueRouter = new Router({   routes: [     //......     {      path: '/account',      name: 'account',      component: Account,      children: [       {name: 'course', path: 'course', component: CourseList},       {name: 'order', path: 'order', component: OrderList}      ]     }   ] }); vueRouter.beforeEach(function (to, from, next) {   const nextRoute = [ 'account', 'order', 'course'];   const auth = store.state.auth;   //跳转至上述3个页面   if (nextRoute.indexOf(to.name) >= 0) {     //未登录     if (!store.state.auth.IsLogin) {       vueRouter.push({name: 'login'})     }   }   //已登录的情况再去登录页,跳转至首页   if (to.name === 'login') {     if (auth.IsLogin) {       vueRouter.push({name: 'home'});     }   }   next(); });

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

axios实现数据交互步骤详解

Angular Component使用案例详解

以上就是beforeEach实现路由跳转验证功能的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 10:35:08
下一篇 2025年3月8日 10:35:13

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

相关推荐

  • vue裁切预览组件功能的实现步骤

    这篇文章主要介绍了vue裁切预览组件功能的实现代码,本文通过实例代码相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值,感兴趣的朋友跟随脚本之家小编一起学习吧 vue版本裁切工具,包含预览功能 最终效果: qiuyaofan.gith…

    2025年3月8日
    200
  • node实现的爬虫功能

    这篇文章主要介绍了node实现的爬虫功能,结合实例形式分析了nodejs实现爬虫功能的步骤与相关操作技巧,需要的朋友可以参考下 本文实例讲述了node实现的爬虫功能。分享给大家供大家参考,具体如下: node是服务器端的语言,所以可以像py…

    2025年3月8日
    200
  • Vue 实现树形视图数据功能

    这篇文章主要介绍了关于实现vue 实现树形视图数据功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 利用简单的树形视图实现,熟悉了组件的递归使用 这是模拟的树形图数据 let all={   name:’all’,   c…

    2025年3月8日 编程技术
    200
  • 基于Vue实现拖拽功能

    这篇文章主要为大家详细介绍了vue实现拖拽功能,拖动方块进行移动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Vue实现拖拽功能的具体代码,供大家参考,具体内容如下 效果图: HTML代码:            …

    2025年3月8日
    200
  • vue做出全选与反选功能

    这次给大家带来vue做出全选与反选功能,vue做出全选与反选功能的注意事项有哪些,下面就是实战案例,一起来看一下。 全选功能可以说是前端开发中非常常见的一个功能,以前的项目开发用jQuery开发比较多。最近在使用vue前端框架重构之前的项目…

    2025年3月8日
    200
  • 怎样用JS验证E-mail格式

    这次给大家带来怎样用JS验证E-mail格式,用JS验证E-mail格式的注意事项有哪些,下面就是实战案例,一起来看一下。 最近做了一个前端的项目,要求:输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @…

    2025年3月8日
    200
  • JS怎么实现滑动拼图验证码

    这次给大家带来JS怎么实现滑动拼图验证码,JS实现滑动拼图验证码的注意事项有哪些,下面就是实战案例,一起来看一下。   上图为网易云盾的滑动拼图验证码,其应该有一个专门的图片库,裁剪的位置是固定的。我的想法是,随机生成图片,随机生成位置,再…

    2025年3月8日 编程技术
    200
  • jQuery+Ajax验证用户名

    这次给大家带来jQuery+Ajax验证用户名,jQuery+Ajax验证用户名的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML Insert title here //页面加载完成后 $(function() { //添加失焦…

    编程技术 2025年3月8日
    200
  • beforeEach实现导航守卫案列教程

    这次给大家带来beforeEach实现导航守卫案列教程,beforeEach实现导航守卫的注意事项有哪些,下面就是实战案例,一起来看一下。 路由跳转前做一些验证,比如登录验证(未登录去登录页),是网站中的普遍需求。对此,vue-route …

    编程技术 2025年3月8日
    200
  • PHP图片简单上传功能详解

    这篇文章主要为大家详细介绍了php图片简单上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 以下是代码:    登录后复制 总结: php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论