Vue3-35-路由-路由守卫的简单认识

news2024/10/3 17:04:51

什么是路由守卫

路由守卫,就是在 路由跳转 的过程中,
可以进行一些拦截,做一些逻辑判断,
控制该路由是否可以正常跳转的函数。

常用的路由守卫有三个 :
beforeEach() : 前置守卫,在路由 跳转前 就会被拦截;
beforeResolve() : 解析守卫,对路由的中的做元数据解析判断等逻辑处理;【常用】
afterEach() : 后置守卫,路由跳转之后的操作,这个用的较少。

本文对上述三个路由守卫进行一下简单的使用,供大家参考。
重点是看 路由的配置 和 效果截图。

路由守卫的基本信息

路由守卫 就是一个函数,
这个函数有固定的两个参数 :第一个是 目标路由对象,第二个是 来源路由对象;
返回值 : 当返回为 undefine 或这 true 时,会继续正常跳转;
         当返回值为 false 时,路由会被停止;
         也可以返回一个对象,重定向到某个路由对象。

下面是路由守卫的简单使用案例

// 导入 定义路由的两个方法
import {createRouter,createWebHistory}  from 'vue-router'

// 引入两个组件
import componentA from "./componentA.vue";
import componentB from "./componentB.vue";

// 声明路由跳转的路径与组件的对应关系
const routsList = [
    {path:'/a',name:'aroute',component:componentA},
    {path:'/b',name:'broute',component:componentB},
    {path:'/b2',name:'b2route',redirect:{name:'aroute'}},

]

// 创建路由的实例对象
const routerConfigObj = createRouter({
    history:createWebHistory('abc'), // 带一个参数,表示是路由的一个前缀
    routes:routsList // 指定路由的配置列表
})


// 前置守卫
routerConfigObj.beforeEach((to,from)=>{
    console.log('前置守卫 : to  : ',to)
    console.log('前置守卫 :from : ',from)
    console.log('------')
    // if(to.fullPath != '/b'){
    //     //return '/b'
    //     //return {path:'/b'}
    //     //return {name:'broute'}
    // }

    return true;
})

// 全局解析守卫
routerConfigObj.beforeResolve((to,from)=>{
    console.log('解析守卫 : to  : ',to)
    console.log('解析守卫 :from : ',from)
    console.log('------')
    if(to.fullPath != '/b'){
        return '/b'
        //return {path:'/b'}
        //return {name:'broute'}
    }

    // return true
})

// 后置守卫
routerConfigObj.afterEach((to,from)=>{
    console.log('后置守卫 : to  : ',to)
    console.log('后置守卫 :from : ',from)
    console.log('------')
})

// 导出路由的对象
export default routerConfigObj;

》 运行效果

在每个路由守卫中,
都可以获取到 源路由对象 和 目标路由对象,
从而进行逻辑处理。

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1361509.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++学习笔记——类作用域和抽象数据类型

目录 一、C类作用域 类内作用域 类外作用域 二、类作用域案列详细的解释说明 三、抽象数据类型 四、总结 类作用域 抽象数据类型(ADT) 五、图书馆管理系统 一、C类作用域 在C中,类作用域是指类定义中声明的标识符(成员变…

【SpringCloud】之远程消费(进阶使用)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《SpringCloud开发之远程消费》。🎯&a…

Linux第12步_磁盘重新分区

解决“挂载后的U盘出现中文乱码”后,我们接着学习“磁盘重新分区”,熟悉fdisk命令。 1、删除磁盘的分区 输入“cd /回车”,进入根目录 输入“ls /dev/sd*回车”,显示dev以sd所有文件。 输入“sudo fdisk /dev/sdb1回车” 输入…

瑜亮之争有结果了,6GHz(6425-7125MHz)全部或部分频段划分用于IMT系统

文章目录 6GHz(6425-7125MHz)全部或部分频段划分用于IMT系统Wi-Fi 7 使用的频段Wi-Fi 7 与IMT使用的频段存在重叠频谱分配有讲究6GHz频段未来如何利用如何看待6GHz频段划入IMT关于Wi-Fi 7 与IMT关于Wi-Fi 7(IEEE 802.11be EHT)关于IMT(International Mob…

从零开始的OpenGL光栅化渲染器构建1

前言 参照Learnopengl,我开始回顾OpenGL中的内容,最终目标是构建一个玩具级的光栅化渲染器,最好还能和之前做的光线追踪渲染器相结合,希望能够有所收获吧~ 包管理 之前我用CMake配置过OpenGL的环境,这样做出来的项目…

Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)

vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 Vite4 TypeScript Element Plus Pinia Vue Router 等当前主流框架。 相较于其他管理前端框架,vue3-element-admin 的优势在于一…

Python 面向对象之多态和鸭子类型

Python 面向对象之多态和鸭子类型 【一】多态 【1】概念 多态是面向对象的三大特征之一多态:允许不同的对象对同一操作做出不同的反应多态可以提高代码的灵活性,可扩展性,简化代码逻辑 【2】代码解释 在植物大战僵尸中,有寒冰…

vite4项目中,vant兼容750适配

一般非vite项目,使用postcss-px-to-viewport。在设计稿为750时候,可使用以下配置兼容vant。 在vite4项目中,以上配置不行。需要调整下,使用postcss-px-to-viewport-8-plugin,并修改viewportWidth,具体如下…

2 @RequestMapping 注解

1. RequestMapping 概念 SpringMVC 使用RequestMapping 注解为控制器指定可以处理哪些 URL 请求在控制器的类定义及方法定义处都可标注 RequestMapping 标记在类上:提供初步的请求映射信息。相对于 WEB 应用的根目录标记在方法上:提供进一步的细分映射信…

大创项目推荐 深度学习图像风格迁移 - opencv python

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习图像风格迁移 - opencv python 该项目较为新颖,适合作为竞赛课题…

遇见狂神说 Spring学习笔记(完整笔记+代码)

简介 Spring是一个开源的免费的框架(容器)Spring是一个轻量级的、非入侵式的框架控制反转(IOC),面向切面编程 (AOP)支持事务的处理,支持对框架进行整合 Spring就是一个轻量级的控制反转(IOC)和…

视频智能分析支持摄像头异常位移检测,监测摄像机异常位移变化,保障监控状态

我们经常在生产场景中会遇到摄像头经过风吹日晒,或者异常的触碰,导致了角度或者位置的变化,这种情况下,如果不及时做出调整,会导致原本的监控条件被破坏,发生事件需要追溯的时候,查不到对应位置…

01-线程池项目背景:C++的数据库操作

从0开始学习C与数据库的联动 1.原始方式-使用MySQL Connector/C 提供的API查询 1.1 数据库预操作 我的本地电脑上有mysql数据库,里面预先创建了一个database名叫chat,用户名root,密码password。 1.2 Visual Studio预操作 在Windows上使用…

Linux与C/C++服务器开发:深入探索网络编程与实用技术(文末送书)

🎥 屿小夏 : 个人主页 🔥个人专栏 : 书籍推荐 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. 构建高性能Linux C/C服务器1.1 优化服务器性能1.2 处理并发和并行性1.3 高效管理内存1…

dnSpy调试工具二次开发1-新增菜单

测试环境: window 10 visual studio 2019 版本号:16.11.15 .net framework 4.8 开发者工具包 下载 .NET Framework 4.8 | 免费官方下载 .net 5开发者工具包 下载 .NET 5.0 (Linux、macOS 和 Windows) 利用git拉取代码(源码地址:Gi…

TypeError: loaderUtils.getOptions is not a function

webpack 版本:^5.89.0 但是直接 pnpm add loader-utils 安装的版本比较新,会报错:TypeError: loaderUtils.getOptions is not a function。 解决方案:将低 loader-utils 版本,我这里使用 ^2.0.0 就不会再报这个错误了 …

Pandas DataFrame中将True/False映射到1/0

在本文中,我们将看到如何在Pandas DataFrame中将True/False映射到1/0。True/False到1/0的转换在执行计算时至关重要,并且可以轻松分析数据。 1. replace方法 在这个例子中,我们使用Pandas replace()方法将True/False映射到1/0。在这里&…

十大性能测试工具

这篇关于“性能测试工具”的文章将按以下顺序让您了解不同的软件测试工具: 什么是性能测试? 为什么我们需要性能测试? 性能测试的优势 性能测试的类型 十大性能测试工具 什么是性能测试? 性能测试是一种软件测试,可确…

25考研经验贴之准备篇三

Hello各位小伙伴又见面了,今天要给大家分享一些大家在备考中可以用到的软件。 另外前两次分享的一些择校什么的也不够全面,今天又为大家找到了一个全面的考研常识讲解视频,有需要的可以关注公众号,在后台回复:考研常识…

Python自动点击器

一、如何制作一个Python自动点击器? 当用户单击开始键时,代码将从键盘获取输入,并在用户单击退出键时终止自动点击器,自动点击器开始单击指针放置在屏幕上的任何位置。我们将在这里使用pynput模块。 二、什么是自动点击器&#…