Vue路由守卫详解

Vue 路由守卫是 Vue Router 提供的一种功能,用于在路由导航的不同阶段插入控制逻辑,从而实现对路由跳转的精细化管理。以下是 Vue 路由守卫的详细解析:

路由守卫的分类

Vue 路由守卫主要分为三类:全局守卫、路由独享守卫和组件内守卫

1. 全局守卫

全局守卫对整个应用中的所有路由跳转生效,主要包括以下几种:

  • 全局前置守卫 (beforeEach):在路由跳转之前被调用,可以用于身份验证、权限检查等。例如,检查用户是否登录,如果未登录则重定向到登录页面。
router.beforeEach((to, from, next) => {
   
  const isAuthenticated = localStorage.getItem('token');
  if (to.meta.requiresAuth && !isAuthenticated) {
   
    next('/login');
  } else {
   
    next();
  }
});
  • 每个守卫接收两个(或三个)参数:
    to:即将要进入的目标
    from:当前导航正要离开的路由
    next:(可选)一个继续执行的函数

  • 可以返回的值如下:
    false:取消当前的导航
    一个路由地址:通过一个路由地址重定向到一个不同的地址,如同调用router.push(),并且可以传入类似“replace:true” 或 “name:home” 之类的选项

 
  router.beforeEach(async (to,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值