当前位置: 首页 > article >正文

导航守卫有哪三种?

导航守卫主要分为三种:

  1. 全局前置守卫:使用 router.beforeEach 注册,作用是在路由切换开始前进行拦截和处理,可以用来进行一些全局的权限校验、登录状态检查等操作。

  2. 全局解析守卫:使用 beforeResolve 注册,作用是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,进行一些操作。

  3. 全局后置钩子:使用 afterEach 注册,作用是在导航成功完成后进行一些全局的清理操作,比如页面的埋点统计、日志记录等。

这些导航守卫适用于需要在路由切换过程中做一些额外处理的情况,比如权限控制、页面加载前后的操作等。

以下是一个简单的示例代码:

const router = new VueRouter({
  routes: [
    {
      path: '/admin',
      component: Admin,
      beforeEnter: (to, from, next) => {
        // 在进入 /admin 路由前进行权限校验
        if (user.isAdmin) {
          next(); // 确认跳转
        } else {
          next('/login'); // 重定向到登录页面
        }
      }
    }
  ]
});

router.beforeEach((to, from, next) => {
  // 在每次路由切换前进行全局的拦截处理,比如检查登录状态
  if (to.meta.requiresAuth && !user.isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});

router.afterEach((to, from) => {
  // 在每次路由切换后进行全局的清理操作,比如页面埋点统计
  trackPageView(to.path);
});

以上示例展示了如何使用全局前置守卫、全局解析守卫和全局后置钩子对路由进行拦截、处理和清理操作。这些导航守卫能够帮助我们在路由切换时进行额外的控制和操作。


http://www.kler.cn/a/133232.html

相关文章:

  • Python习题 250:删除空文件夹
  • C++中特殊类设计/单例模式
  • 路由器基本原理与配置
  • 算力100问☞第5问:算力如何衡量?
  • 云安全之云计算基础
  • Java I/O(输入/输出)——针对实习面试
  • [msg_msg] corCTF2021 -- fire_of_salvation
  • vue中watch监听事件与计算属性的区别
  • Linux 环境删除Conda
  • 【网络奇遇记】我和因特网的初相遇2 —— 三种交换方式
  • DPAFNet:一种用于多模式脑肿瘤分割的残差双路径注意力融合卷积神经网络
  • 表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
  • 如何检查 Docker 和 Kubernetes 是否可以访问外部网络,特别是用于拉取镜像的仓库?
  • 【软件安装】Centos系统中安装docker容器(华为云HECS云耀服务器)
  • Python3.7+PyQt5 pyuic5将.ui文件转换为.py文件、Python读取配置文件、生成日志
  • uni-app小程序开发使用uView,u-model传入富文本内容过长,真机上无法滚动
  • 【2023年csp-j第二轮】第一题解析
  • 【算法挨揍日记】day29——139. 单词拆分、467. 环绕字符串中唯一的子字符串
  • 【设计一个缓存--针对各种类型的缓存】
  • 【数据分享】2023年我国省市县三级的专精特新“小巨人”企业数量(Excel/Shp格式)
  • 【LeetCode刷题-滑动窗口】-- 239.滑动窗口最大值
  • 【【萌新的SOC学习之 VDMA 彩条显示实验之一】】
  • 【RocketMq系列-01】RocketMq安装和基本概念
  • TG Pro v2.87(mac温度风扇速度控制工具)
  • 拒绝服务攻击工具的编写
  • 永久关机windows系统自动更新