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

vue3的七种路由守卫使用

路由守卫有哪几种?

        路由守卫(导航守卫)分为三种:全局守卫(3个)、路由独享守卫(1个)、组件的守卫(3个)。

路由守卫的三个参数

to:要跳转到的目标路由

from:从当前哪个路由进行跳转

next:不做任何阻拦,直接通行

注意: 必须要确保 next函数 在任何给定的导航守卫中都被调用过一次。它可以出现多次,但是只能在所有的逻辑路径都不重叠的情况下,否则会报错。 案例:

router.beforeEach((to, from, next) => {if (to.name !== 'Login' && !isAuthenticated) next({ name: 'Login' })else next()
})

一、全局路由守卫

1.使用方式:main.js中配置,在路由跳转前触发,这个钩子作用主要是用于登录验证,也就是路由还没跳转提前告知,以免跳转了再通知就为时已晚。

2.代码:

router.beforeEach((to,from,next)=>{})

3.例子:做登录判断

router.beforeEach((to,from,next)=>{if(to.path == '/login' || to.path == '/register'){next();}else{alert('您还没有登录,请先登录');next('/login');}})

二、全局后置守卫

1.使用方式:main.js中配置,和beforeEach相反,它是在路由跳转完成后触发,它发生在beforeEach和beforeResolve之后,beforeRouteEnter(组件内守卫)之前。钩子不会接受next函数也不会改变导航本身。

2.代码:

router.afterEach((to,from)=>{})

三、全局解析守卫

1.使用方式:main.js中配置,这个钩子和beforeEach类似,也是路由跳转前触发,区别是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,即在 beforeEach 和 组件内beforeRouteEnter 之后,afterEach之前调用

2.代码:

router.beforeResolve((to,from,next)=>{})

四、组件内守卫

  1. beforeRouteEnter(to, from, next)
    1. 1.使用方式:在组件模板中使用,跟methods: {}等同级别书写,组件路由守卫是写在每个单独的vue文件里面的路由守卫。
    2. 代码:
      beforeRouteEnter(to, from, next) {// 在组件生命周期beforeCreate阶段触发console.log('组件内路由前置守卫 beforeRouteEnter', this) // 访问不到thisnext((vm) => {console.log('组件内路由前置守卫 vm', vm) // vm 就是this})},
  2. beforeRouteUpdate(to, from, next)

    1. 使用方式:在组件模板中使用,跟methods: {}等同级别书写,组件路由守卫是写在每个单独的vue文件里面的路由守卫。
    2. 代码:
      beforeRouteUpdate (to, from, next) {// 同一页面,刷新不同数据时调用,// 可以访问组件实例 
      }
  3. beforeRouteLeave(to, from, next)

    1. 使用方式:在组件模板中使用,跟methods: {}等同级别书写,组件路由守卫是写在每个单独的vue文件里面的路由守卫。
    2. 代码:
​
beforeRouteLeave (to, from, next) {// 导航离开该组件的对应路由时调用// 可以访问组件实例
}​

 五、路由独享守卫

  1.  使用方式:在router.js中使用,路由独享守卫是在路由配置页面单独给路由配置的一个守卫。
  2. 代码:
    const router = new VueRouter({routes: [{path: '/foo',component: Foo,beforeEnter: (to, from, next) => {// ...}}]
    })
    

相关文章:

vue3的七种路由守卫使用

路由守卫有哪几种? 路由守卫(导航守卫)分为三种:全局守卫(3个)、路由独享守卫(1个)、组件的守卫(3个)。 路由守卫的三个参数 to:要跳转到的目标路由 from:…...

华测导航GPCHC协议ROS驱动包,CGI610、410接收机,NavSatStatus、GPSFix和普通格式

目录一、消息类型1.1 sensor_msgs/NavSatFix1.2 sensor_msgs/NavSatStatus1.3 gps_common::GPSFix1.4 sensor_msgs::Imu二、部分源码2.1 相关的依赖和库2.2 文件结构2.3 字段分割函数2.4 定义消息话题Ubuntu 20.04 noetic 华测CGI 610——RS232-C——GPCHC 一、消息类型 1.1 …...

算法实战应用案例精讲-【图像处理】Pillow图像处理(python代码实战)

目录 操作图像 计算机图像基础 颜色和RGBA值 坐标和 Box 元组 CMYK 和 RGB着色...

C语言通讯录【动态+文件】

目录定义结构体基础操作部分文件操作部分定义结构体 我们要做一个通讯录,里面的信息有一个人的名字,年龄,性别,地址和电话号 对于姓名,年龄等字符串,为了日后方便调整其长度,需要预定义一下它…...

Linux驱动开发详细解析

Linux驱动开发详细解析 驱动概念 驱动与底层硬件直接打交道,充当了硬件与应用软件中间的桥梁。 具体任务 读写设备寄存器(实现控制的方式)完成设备的轮询、中断处理、DMA通信(CPU与外设通信的方式)进行物理内存向虚…...

Java Character 类,超详细整理,适合新手入门

目录 一、什么是Java Character 类? 二、Character类有哪些常用的静态方法? 1、将一个字符分别转换为大写字母和小写字母 2、如何判断一个字符是否是数字? 3、如何将一个字符转换为数字? 4、如何将一个字符串转换为字符数组…...

Python量化入门:关于收益率的一些概念

今天我们简单地介绍关于收益率的一些概念,方便大家理解我们后续的量化教程的分享。这些都很简单,但是请有经验的读者理解,毕竟有些读者没有这些基础,后边理解起来可能会有些吃力。 一、收益率简介 在金融领域,收益率是我们耳熟能详的一个名词。资产的收益率是指投入资产…...

微搭使用笔记(三) 数据模型介绍及初步使用

基于数据模型实现表单页面的生成和数据的保存、查看 表单应用是微搭的一个重要的使用场景,我们举下面一个简单的问卷调查的例子: 基于以上问卷,本文我们采取数据模型的方式生成表单页面并完成数据的保存及查看。 数据模型概述 先看下官方文档对于数据…...

JavaScript刷LeetCode心得

各类题的解决方案 话不多说,系统整理下解题的一些算法和解决方案 二叉树 二叉树大多使用递归的方式左右两个元素向下递归。比如: 计算二叉树最大深度 var maxDepth function (root) {if (root null) return 0return 1 Math.max(maxDepth(root.le…...

浙江工商大学2023年硕士研究生 入学考试初试成绩查询通知及说明

根据往年的情况,2023浙江工商大学MBA考试初试成绩可能将于2月21日下午两点公布,为了广大考生可以及时查询到自己的分数,杭州达立易考教育为大家汇总了信息。一、成绩查询考生可以登录中国研究生招生信息网(http://yz.chsi.com.cn/…...

华为OD机试题 - 子序列长度(JavaScript)

最近更新的博客 华为OD机试题 - 任务总执行时长(JavaScript) 华为OD机试题 - 开放日活动(JavaScript) 华为OD机试 - 最近的点 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试题 - 最小步骤数(JavaScript) 华为OD机试题 - 任务混部(JavaScript) 华为OD机试题 - N 进…...

Simulink 自动代码生成电机控制:STM32 Encoder编码器使用总结

目录 Encoder 原理 STM32 Encoder 计数原理 模型仿真 模拟Encoder 基于Encoder计算角度和速度 关于启动的仿真 代码生成 运行演示 总结 总结一下基于STM32的Encoder接口的电机运行,相应的仿真和实验都是基于一个1024脉冲的增量式光电编码器,关于…...

《计算机系统基础》——计算机系统导论

文章目录《计算机系统基础》——计算机系统导论计算机的基本组成程序开发与执行过程机器语言汇编语言高级语言程序的转换处理程序的数据流动计算机系统层次结构早期计算机系统1GL2GL现代计算机系统3GL4GL指令集体系结构《计算机系统基础》——计算机系统导论 🚀接下…...

华为OD机试 - 获取最大软件版本号(JavaScript) | 机试题算法思路 【2023】

获取最大软件版本号 题目 Maven版本号定义,<主版本>.<次版本>.<增量版本>-<里程碑版本> 举例3.1.4-beta 其中,主版本和次版本都是必须的,主版本,次版本,增量版本由多位数字组成,可能包含前导零,里程碑版本由字符串组成。 <主版本>.<…...

python--pygame实现各级菜单栏目设置

随着学期的开始&#xff0c;同学们也即将进入计算机相关课程的课程设计了&#xff0c;对于python课程设计的小伙伴&#xff0c;可能有些是需要利用pygame来写应该小游戏的&#xff0c;因为最近很多小伙伴同学也在想我要一些基于python的pygame模块做的游戏项目&#xff0c;此外…...

C++Primer15.3节练习

练习15.11&#xff1a; debug定义如下所示&#xff1a; //基类 class Quote { public:Quote() default;Quote(const std::string& book,double sales_price):bookNo(book),price(sales_price){ }std::string isbn()const { return bookNo; }virtual double net_price(st…...

解决实际项目中stalled时间过久的问题

背景 在公司参与了一个做度量统计的项目&#xff0c;该项目的特点是页面上的表格、卡片、图标非常多。项目经常出现一种情况&#xff1a;页面加载速度较慢&#xff0c;开始怀疑是由于计算量较大&#xff0c;后端接口相应速度较慢。优化了一版后端接口后&#xff08;加缓存、优…...

vim编辑器

目录 前言 1.下载安装vim 2.三种模式互换 3.vim配置 前言 vim是从 vi 发展出来的一个文本编译器。 代码补完、编译及错误跳转等方便编程的功能特别丰富&#xff0c;在程序员中被广泛使用。 简单的来说&#xff0c; vi 是老式的字处理器&#xff0c;不过功能已经很齐全了&am…...

Python 使用 pip 安装 matplotlib 模块(秒解版)

长话短说&#xff1a;本人下载 matplotlib 花了大概三个半小时屡屡碰壁&#xff0c;险些暴走。为了不让新来的小伙伴走我的弯路&#xff0c;特意创作本片文章指明方向。 1.首先需要下载 python 我直接是在电脑自带的软件商店里下载的&#xff0c;图方便&#xff0c;当然在官网下…...

python-openCV—入门到精通系列讲解(配效果图)- 总览

前言: python-openCV是一种强大的计算机视觉库,可用于处理图像和视频等多媒体数据。它可以帮助您快速处理和分析图像和视频数据,并且在计算机视觉领域具有广泛的应用。在学习python-openCV时,一个速查手册是一个必不可少的工具。 你可以当本专栏当做一个速查手册,可以看…...

告别卡顿!Win11Debloat开源系统优化工具让Windows 11性能提升200%

告别卡顿&#xff01;Win11Debloat开源系统优化工具让Windows 11性能提升200% 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更…...

PyCharm实战:从零到一完成YOLOv11自定义数据集训练

1. 环境准备与数据集配置 第一次用PyCharm跑YOLOv11训练时&#xff0c;我对着满屏的代码和配置文件差点放弃。后来发现只要环境装对了&#xff0c;后面都是顺水推舟。这里分享几个新手容易踩的坑&#xff1a;CUDA版本和PyTorch不匹配会导致显卡根本用不上&#xff0c;conda环境…...

马吕斯定律在现代光学技术中的关键应用解析

1. 马吕斯定律&#xff1a;偏振光世界的"交通规则" 想象一下你戴着偏光太阳镜站在湖边&#xff0c;神奇的事情发生了——水面刺眼的反光突然消失了&#xff01;这背后正是马吕斯定律在发挥作用。这个由法国物理学家马吕斯在19世纪初发现的规律&#xff0c;本质上描述…...

计算机网络传输优化LingBot-Depth实时数据的方案

计算机网络传输优化LingBot-Depth实时数据的方案 1. 引言 想象一下&#xff0c;你正在使用LingBot-Depth处理实时深度数据&#xff0c;突然间网络开始卡顿&#xff0c;关键帧丢失&#xff0c;整个系统就像在泥沼中挣扎。这不是科幻场景&#xff0c;而是许多开发者在处理大规模…...

用ESP32打造智能家居控制中心:HTTP服务器实战教程(含WiFi配置)

用ESP32构建智能家居控制中枢&#xff1a;从WiFi配置到HTTP交互全解析 清晨醒来&#xff0c;窗帘自动拉开到预设角度&#xff0c;咖啡机开始研磨新鲜豆子&#xff0c;空调将室温调节至最舒适状态——这样的智能家居场景正逐渐从科幻走向现实。而实现这一切的核心&#xff0c;往…...

工作中常用linux命令汇总

①启动jar包&#xff1a;nohup java -jar ruoyi-admin.jar > app.log 2>&1 &②指定端口启动jar包&#xff1a;nohup java -jar -Dserver.port8081 ruoyi-admin.jar > app.log 2>&1 &③根据jar包判断启动的进程&#xff1a;jps -l | grep ruoyi-adm…...

Windows 10下ISE14.7与Modelsim 10.1c联合安装避坑指南(附完整破解流程)

Windows 10下ISE14.7与Modelsim 10.1c联合安装全流程解析 对于FPGA开发者而言&#xff0c;一套稳定的EDA环境是高效工作的基础。本文将详细介绍如何在Windows 10 64位系统中完成ISE Design Suite 14.7与Modelsim SE 10.1c的联合安装配置&#xff0c;特别针对安装过程中可能遇到…...

突破性GPU显存释放技术:解决ComfyUI模型占用难题的底层API方案

突破性GPU显存释放技术&#xff1a;解决ComfyUI模型占用难题的底层API方案 【免费下载链接】ComfyUI-Easy-Use In order to make it easier to use the ComfyUI, I have made some optimizations and integrations to some commonly used nodes. 项目地址: https://gitcode.c…...

M.2 (NGFF) PCIe 3.0 接口在嵌入式系统中的实战应用 —— 从硬件设计到驱动优化

1. M.2接口在嵌入式系统中的核心价值 第一次在嵌入式项目里用M.2接口时&#xff0c;我盯着那个比指甲盖大不了多少的插槽直犯嘀咕——这么小的玩意儿真能跑PCIe 3.0&#xff1f;实测后发现这简直是嵌入式系统的"万能扩展坞"。不同于消费级PC的M.2只用来插SSD&#x…...

除了HDFS,DolphinScheduler资源中心还能怎么玩?聊聊S3与本地存储的配置差异

DolphinScheduler资源中心存储方案深度对比&#xff1a;从HDFS到S3的架构选型指南 在数据调度平台的实际部署中&#xff0c;存储后端的选型往往决定了系统整体的扩展性和运维成本。作为Apache DolphinScheduler的核心组件&#xff0c;资源中心支持多种存储类型配置&#xff0c…...