vue-router 路由导航守卫

导航就是路由发生变化,守卫就是在这个过程中做一些操作

3个级别

以下都是一些钩子函数(指定在某一时刻触发的函数)

  1. 全局守卫
    1. 全局前置 beforeEach
    2. 全局解析 beforeResolve
    3. 全局后置 afterEach
  2. 路由独享
    1. beforeEnter
  3. 组件内的守卫
    1. beforeRouteEnter
    2. beforeRouteUpdate
    3. beforeRouteLeave
每个守卫方法接收三个参数
  1. to 即将要进入的路由目标
  2. from 即将要离开的路由
  3. next
    是否放行
    1. next() 放行
    2. next(false) 不放行
    3. next(’/xxx’) 重定向
    4. next(error) 抛出异常
从a页面到b页面的过程 /a -> /b 依次触发的函数
  1. beforeEach 路由前置
  2. beforeEnter /b上面配置的路由独享
  3. beforeRouteEnter /b b组件上定义的 组件内守卫
  4. beforeResolve 全局解析
  5. afterEach 全局后置
从b回到a /b -> /a 依次触发的函数
  1. beforeRouteLeave /b b组件上定义的组件内守卫
  2. beforeEach 全局前置
  3. beforeResolve 全局解析
  4. afterEach 全局后置
beforeRouteUpdate() 触发条件

动态路由发生变化,参数变化
/a/1233 -> /a/1223

路由导航守卫的应用

登录拦截

router.js 路由中 定义beforeEnter()

meta:路由元信息,可以做一个全局前置页。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-router提供了导航守卫来保护路由的导航。导航守卫可以在跳转或取消导航的过程中进行拦截。导航守卫可以分为全局守卫、路由独享守卫和组件级守卫。 全局守卫是注册在router实例上的,可以使用router.beforeEach方法注册一个全局前置守卫。在每次路由切换之前,全局前置守卫会被触发并接收to、from和next三个参数。可以在全局前置守卫中进行一些权限验证或者其他操作,然后通过调用next方法来进行导航。 路由独享守卫是在定义路由的时候通过beforeEnter属性来注册。路由独享守卫只会对特定的路由生效,可以在路由配置中定义一个beforeEnter函数来进行拦截操作。 组件级守卫是使用vue-router提供的beforeRouteEnter、beforeRouteUpdate和beforeRouteLeave方法来注册。beforeRouteEnter在进入路由前被调用,而beforeRouteUpdate在当前路由复用时被调用,beforeRouteLeave在离开当前路由时被调用。这些守卫可以在组件内部进行定义,并可以在组件内部进行一些操作,比如获取数据或者进行一些清理工作。 总结起来,vue-router路由守卫提供了全局守卫、路由独享守卫和组件级守卫来保护路由的导航,可以在不同的阶段进行各种操作,确保路由的安全和灵活性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue路由守卫(导航守卫)](https://blog.csdn.net/m0_48949881/article/details/122436528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值