广告
返回顶部
首页 > 资讯 > 精选 >Vue中路由守卫怎么用
  • 703
分享到

Vue中路由守卫怎么用

2023-06-21 23:06:35 703人浏览 八月长安
摘要

小编给大家分享一下Vue中路由守卫怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.全局守卫1.1 全局前置守卫顾名思义,前置守卫主要是在你进行路由跳转之前根据你的状态去 进行一系列操作(全局前置是为在路由初始化以及

小编给大家分享一下Vue中路由守卫怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1.全局守卫

1.1 全局前置守卫

顾名思义,前置守卫主要是在你进行路由跳转之前根据你的状态去 进行一系列操作(全局前置是为在路由初始化以及跳转之前都会触发)

你可以使用router.beforeEach注册一个全局前置守卫(Each:每个,即在任意一个路由跳转的时候都会触发)

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

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

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

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

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

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

3.next('/")或者next( { path: '/' } ):跳转到一个同的地址。当前的导航被中断,然后进行下一个新的导航。你可以想next传递任意对象,且允许设置诸如replace:true、name:'home‘ 之类的选项以及任何用下router-link的 to prop或者router.push中的选项

确保next函数在任何给定的导航守卫中被严格调用一次,它可以出现多余一次,但是只能在所有的逻辑路径都不重叠的情况下,否则钩子永远都不会被解析或者错误。

1.1 使用

可以打印出from、to、next看他们究竟会保存那些信息

Vue中路由守卫怎么用

举例

import Vue from 'vue'import VueRouter from 'vue-router'import Home from '../views/Home.vue'import About from '../views/About.vue'import News from '../views/News.vue'import Message from '../views/Message.vue' Vue.use(VueRouter) const routes = [{    path: '/home',    name: 'Home',    component: Home,    children:[      {        path: 'message', //此处不要写成:/news        component: Message      }    ]  },  {    path: '/about',    name: 'aboutName',    component: About,    children: [{ //通过children配置子级路由      path: 'news', //此处不要写成:/news      component: News    }]  }] const router = new VueRouter({  routes}) //全局前置路由守卫---初始化的时候被调用、每次路由切换的时候被调用router.beforeEach((to, from, next) => {  console.log(to);  //这里是一个简单的例子  //即判断用户是否进入了需要鉴权的路由下(这里距离为news和message)  if (to.path == '/home/message' || to.path === '/about/news') {    //如果进入了,那就判断本地是否缓存了信息(这里模拟登录的token)    if (localStorage.getItem('name') === 'haungzhizhen') {      next()    }  }else{    //如果不是,则直接放心即可    next()  }})export default router

上面这个例子有个不足之处是,当需要鉴权的路由很多的时候,那你需要一个一个的去判断?那大可不必,因此这里引入路由的另一属性,即meta,可以在每个路由中进行配置,一般用来标识具有标识性的属性,可以用力啊同意判断,具体如下:

Vue中路由守卫怎么用

//使用metarouter.beforeEach((to, from, next) => {  console.log(to);  if (to.meta.isAuth) {//判断是否需要鉴权    if (localStorage.getItem('name') === 'haungzhizhen') {      next()    }  } else {    next()  }})

1.2 全局后置路由守卫

//全局后置路由守卫---初始化的时候被调用、每次路由切换之后被调用router.afterEach((to, from) => {  if (to.meta.title) {    document.title = to.meta.title || '路由跳转举例'//修改网页的title  }else{    document.title = 'vue_test'  }})

1.3 整合

Vue中路由守卫怎么用

2. 路由独享的守卫

你可以在路由配置直接定义beforeEnter守卫,这些参数与全局前置守卫的方法参数是一样的

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

3.组件内的守卫

最后,你可以在路由组件内直接定义一下路由导航守卫:

  • beforeRouterEnter

  • beforeRouterUpdate

  • beforeRouterLeave

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`  }}

看完了这篇文章,相信你对“Vue中路由守卫怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Vue中路由守卫怎么用

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

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

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

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

下载Word文档
猜你喜欢
  • Vue中路由守卫怎么用
    小编给大家分享一下Vue中路由守卫怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.全局守卫1.1 全局前置守卫顾名思义,前置守卫主要是在你进行路由跳转之前根据你的状态去 进行一系列操作(全局前置是为在路由初始化以及...
    99+
    2023-06-21
  • Vue路由守卫之路由独享守卫如何实现
    这篇文章主要介绍了Vue路由守卫之路由独享守卫如何实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。路由独立守卫,顾名思义就是这个路由自己的...
    99+
    2022-10-19
  • vue路由守卫及路由守卫无限循环问题怎么解决
    这篇“vue路由守卫及路由守卫无限循环问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue路由守卫及路由守卫无限...
    99+
    2023-07-04
  • Vue router 路由守卫详解
    目录一、全局前置beforeEach1.全局前置beforeEach2.实现二、需求二三、全局后置守卫afterEach1.修改title为自己的title四、组件内守卫1.befo...
    99+
    2022-11-12
  • Vue中路由守卫的具体使用
    目录1.全局守卫1.1 全局前置守卫1.2 全局后置路由守卫1.3 整合2. 路由独享的守卫3.组件内的守卫作用:对路由进行权限控制 分类:全局守卫、独享守卫、组件内守卫 1.全局守...
    99+
    2022-11-12
  • vue-router的路由守卫是什么
    这篇文章主要介绍“vue-router的路由守卫是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue-router的路由守卫是什么”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • 如何解决vue路由守卫及路由守卫无限循环问题
    这篇文章主要介绍了如何解决vue路由守卫及路由守卫无限循环问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先贴一波官方文档的内容const...
    99+
    2022-10-19
  • vue3中的路由守卫怎么使用
    这篇文章主要介绍“vue3中的路由守卫怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue3中的路由守卫怎么使用”文章能帮助大家解决问题。路由守卫有哪几种?路由守卫(导航守卫)分为三种:全局...
    99+
    2023-07-06
  • Vue路由守卫案例代码
    目录Vue路由守卫全局路由守卫全局前置守卫全局后置守卫实例代码:独享守卫组件内守卫总结Vue路由守卫 路由守卫,简单理解来说就是,当用户要进行一些操作时,我需要用户的一些信息或数据或...
    99+
    2023-02-02
    Vue路由守卫 Vue路由
  • vue全局路由守卫如何使用
    在vue中使用全局路由守卫的方法:1.新建项目,安装vue-router;2.引入vue和vue-router;3.使用Vue.use注册路由;4.定义和配置路由;5.执行代码使用全局路由守卫;具体步骤如下:首先,新建一个html项目,并在...
    99+
    2022-10-13
  • 如何分析Vue router路由守卫
    本篇文章给大家分享的是有关如何分析Vue router路由守卫,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、全局前置beforeEach当 Local Stora...
    99+
    2023-06-22
  • 详解Vue中的路由与多种守卫
    目录什么是路由呢?什么是路由守卫呢?1.vue-router2.什么是路由路由分类3.路由的基本使用4.多级路由5.路由传参1.params2.路由的props配置3.<rou...
    99+
    2023-02-02
    Vue路由守卫 Vue中的路由
  • 快速理解Vue路由导航守卫
    目录一、全局守卫 1.全局前置守卫 2.全局解析守卫 3.全局后置钩子 三、路由独享的守卫 四、组件内的守卫 五、一个完整的导航解析流程 概念: “导航”表示路由正在发生变化 vue...
    99+
    2022-11-12
  • 使用vue-router钩子函数怎么实现路由守卫
    这篇文章给大家介绍使用vue-router钩子函数怎么实现路由守卫,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。全局钩子函数beforeEach:beforeEach一共接收三个参数,分别是to、from、next;t...
    99+
    2023-06-14
  • vue-router钩子函数实现路由守卫
    目录概述全局钩子函数路由独享的钩子函数组件内的钩子函数概述 何为路由守卫?路由守卫有点类似于ajax的请求拦截器,就是请求发送之前先给你拦截住做一些事情之后再去发送请求,同样这里的路...
    99+
    2022-11-12
  • Vue路由导航守卫的示例分析
    这篇文章将为大家详细讲解有关Vue路由导航守卫的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概念:“导航”表示路由正在发生变化vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫...
    99+
    2023-06-22
  • Angular中路由守卫的使用示例
    这篇文章主要介绍了Angular中路由守卫的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、路由守卫当用户满足一定条件才被允许进入或者离开一个路由。路由守卫场景:只...
    99+
    2023-06-06
  • angular9中路由守卫的使用方法
    小编给大家分享一下angular9中路由守卫的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!路由守卫是什么任何用户都能在任何时候导航到任何地方。但有时候出...
    99+
    2023-06-14
  • 一文浅析Vue中的路由和多种守卫
    4.多级路由在配置路由规则的以及路由里面进行配置下一级路由使用children:[ { } ]这种形式 routes: [{ path: '/about', compon...
    99+
    2023-05-14
    Vue
  • Vue中的路由使用和多种守卫方法是什么
    今天小编给大家分享一下Vue中的路由使用和多种守卫方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.vue-rou...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作