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

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

什么是路由守卫

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

常用的路由守卫有三个 :
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.lryc.cn/news/273012.html

相关文章:

  • 制药企业符合CSV验证需要注意什么?
  • 再谈动态SQL
  • 【数据结构】树
  • 【Midjourney】AI绘画新手教程(一)登录和创建服务器,生成第一幅画作
  • 对比 PyTorch 和 TensorFlow:选择适合你的深度学习框架
  • Oracle笔记-查看表已使用空间最大空间
  • 大数据HCIE成神之路之特征工程——特征选择
  • python 正则-常见题目
  • 解析:Eureka的工作原理
  • RecyclerView 与 ListView 区别和使用
  • 力扣232. 用栈实现队列
  • 这个方法可以让你把图片无损放大
  • Springboot整合Elastic-job
  • VsCode的介绍和入门
  • C++:自创小游戏
  • AIGC带给开发者的冲击
  • 利用蚁剑钓鱼上线CS
  • 宣传照(私密)勿转发
  • 【Spring】19 AOP介绍及实例详解
  • ES(Elasticsearch)的基本使用
  • 【JVM面试题】Java中的静态方法为什么不能调用非静态方法
  • 对‘float16_t’的引用有歧义
  • Windows重装升级Win11系统后 恢复Mysql数据
  • MySQL之四大引擎、账号管理以及建库
  • shell编程——查找局域网内存活主机
  • python django 个人记账管理系统
  • C#的Char 结构的方法之IsLetterOrDigit()
  • 配置Docker私有仓库
  • 计算机网络-动态路由
  • 光耀未来 第一届能源电子产业创新大赛太阳能光伏赛道决赛在宜宾举行