RouteRecordRaw

最近在学习并使用typescript,接触到了很多新类型,今天在学习过程中,看到了RouteRecordRaw这个类型,写篇博客记录一下。

RouteRecordRaw

RouteRecordRaw 是 Vue Router 4 中新增的一个类型定义。

它是用于定义路由记录的。

在 Vue Router 4 中,使用 RouteRecordRaw 来定义路由配置,可以使得路由配置更加清晰和类型安全。(方便typescript进行类型检查!)

RouteRecordRaw 类型定义:

type RouteRecordRaw = {path: string;name?: string;component?: Component;components?: Dictionary<Component>;redirect?: string | Location | NavigationGuard;alias?: string | string[];children?: Array<RouteRecordRaw>;meta?: any;props?: boolean | Object | RoutePropsFunction;caseSensitive?: boolean;pathToRegexpOptions?: PathToRegexpOptions;
}

在 Vue Router 中,path 属性是定义路由的必需属性,它指定了路由的路径。如果没有指定则会导致路由配置不完整或不生效。

这边顺便介绍一下RouteRecordRaw 类型定义中涉及到的其他类型:

1. Component: 表示一个 Vue 组件类型,这个类型来源于 Vue

2. Dictionary<Component>: 表示一个对象,键是字符串类型,值是组件类型 `Component`。这个类型来源于 TypeScript

2.5.Dictionary:Dictionary不是 TypeScript 中的内置类型,而是一种常用的自定义类型约定。在 TypeScript 中,Dictionary 通常用于表示一个键值对对象,其中键是字符串类型,值可以是任意类型。

一个简单的示例:

type Dictionary<T> = {[key: string]: T;
}

Dictionary是一个泛型类型,它接受一个类型参数 T,表示值的类型。这个类型定义了一个对象,对象的键是字符串类型,值是泛型参数 T 类型。

3. Location: 表示路由的目标位置,可以是一个字符串路径或一个对象,包含路径和其他路由信息。这个类型来源于 Vue Router

Location的类型定义:

type Location = string | {name?: string;path?: string;hash?: string;query?: Dictionary<string | (string | null)[] | null | undefined>;params?: Dictionary<string>;
}

4. NavigationGuard: 表示一个导航守卫函数,用于路由导航的控制。这个类型来源于 Vue Router

NavigationGuard的类型定义:

 type NavigationGuard = (to: RouteLocationNormalized,from: RouteLocationNormalizedLoaded,next: NavigationGuardCallback
) => any
  • to: RouteLocationNormalized: 表示导航前的目标路由信息,包括路由的路径、查询参数、哈希、元信息等。

  • from: RouteLocationNormalizedLoaded: 表示导航前的来源路由信息,包括来源路由的路径、查询参数、哈希、元信息等。

  • next: NavigationGuardCallback: 表示一个回调函数,用于控制导航的进行。通过调用 next 函数,可以实现导航的继续、取消、重定向等操作。

导航守卫函数通常在路由配置中使用,通过注册全局前置守卫、路由独享守卫或组件内的守卫函数来控制路由导航的行为。

注意哦,导航守卫函数的返回值可以是一个 Promise,用于异步控制导航过程。

5. RoutePropsFunction: 表示一个函数,用于动态生成路由传递给组件的属性。这个类型来源于 Vue Router

RoutePropsFunction的类型定义:

type RoutePropsFunction = (route: RouteLocationNormalized) => Object

RouteLocationNormalized的类型定义:

interface RouteLocationNormalized {fullPath: string;hash: string;query: RouteQueryAndParameters;params: RouteQueryAndParameters;matched: RouteRecord[];meta: any;name?: string;path: string;redirectedFrom?: string;
}

6. PathToRegexpOptions: 表示路径正则表达式的配置选项,用于指定路径匹配的规则。这个类型来源于 Vue Router

PathToRegexpOptions的类型定义:

type PathToRegexpOptions = {sensitive?: boolean;strict?: boolean;end?: boolean;start?: boolean;delimiter?: string;endsWith?: string | string[];
}

最近事情比较多,挺久没更新博客了!!恢复学习博客产出!! 

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

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

相关文章

Pinia 深度剖析:Vue.js 应用状态管理的全面指南

一、pinia简介 Pinia 是一个专门为 Vue.js 应用程序设计的状态管理库。它的设计理念是简化状态管理过程&#xff0c;提供一种清晰、可维护的方式来管理应用程序中的数据。 二、安装与创建 1.你可以通过 npm 或者 yarn 来安装 Pinia&#xff1a; npm install pinia # 或者 y…

上位机工作感想-从C#到Qt的转变-2

2.技术总结 语言方面 最大收获就是掌握了C Qt编程&#xff0c;自己也是粗看了一遍《深入理解计算机系统》&#xff0c;大致了解了计算机基本组成、虚拟内存、缓存命中率等基基础知识&#xff0c;那本书确实有的部分看起来很吃力&#xff0c;等这段时间忙完再研读一遍。对于封装…

消消乐算法总结

前言 最近在工作中遇到一个问题&#xff0c;做一个消消乐的demo项目&#xff0c;连续相同数目超过四个后就要消除。我在网上看了很多解决方案&#xff0c;有十字形&#xff0c;横向&#xff0c;纵向&#xff0c;梯形搜索。越看越迷糊。这不是用一个BFS就能解决的问题吗&#x…

linux下tcp/udp协议网络通信接口封装+日志打印对象

目录 引入 代码 log.hpp代码 引入 我们可以把之前写过的代码拿过来整合一下,直接封装出网络套接字的接口 这样之后再使用的话,直接调用接口即可这里写的是tcp协议,也可以修改socket函数里的参数,改为udp协议 代码 #pragma once#include <iostream> #include <stri…

实现 vuereact 混合开发项目步骤-微前端

微前端是一种将多个小型前端应用组合成一个大型应用的架构方式。它允许团队独立开发、测试、部署和维护应用的各个部分。Vue.js 和 React 是两个流行的前端框架&#xff0c;它们可以在同一微前端架构下协同工作。 一、常规流程 1. 项目规划 确定项目的范围和目标。 设计应用的…

Qt:实现TCP同步与异步读写消息

一、异步读写 在 Qt 中实现 TCP 客户端和服务器的同步和异步读写消息涉及使用 QTcpSocket 和 QTcpServer 类。这两个类提供了用于建立 TCP 连接、发送和接收数据的功能。下面是一个简单的示例&#xff0c;演示了如何在 Qt 中实现 TCP 客户端和服务器的同步和异步读写消息&…

ISP比普通的静态代理相比有什么优势?

ISP&#xff08;Internet Service Provider&#xff09;&#xff0c;即互联网服务提供商&#xff0c;是向广大用户综合提供互联网接入业务、信息业务、增值业务的电信运营商。而静态代理则是一个固定不变的代理IP地址&#xff0c;具有稳定性强、兼容性好和管理方便等特点。当我…

深入理解Java消息中间件-Apache Kafka

在数字化时代&#xff0c;数据如同血液一样流动于现代应用的每一个角落。如何高效、可靠地处理这些数据流&#xff0c;成为了构建响应式、可扩展和弹性系统的关键挑战。作为一名专业的Java技术架构师和作家&#xff0c;我将深入分析Apache Kafka这一广泛使用的Java消息中间件解…

LiveNVR监控流媒体Onvif/RTSP常见问题-如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放

LiveNVR如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放 1、问题场景2、如何对比延时&#xff1f;3、WEBRTC延时对比4、LiveNVR支持WEBRTC输出5、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、问题场景 需要低延时的视频流监控播放&#xff0c;之前可以用rtmp…

什么是架构?说说我的理解

什么是架构了&#xff1f;其实就是根据企业的具体情况给出的一个解决方案&#xff0c;并且这个架构能升级&#xff0c;如果企业的流量突然暴增&#xff0c;也能适应变化&#xff0c;这才是好的架构&#xff0c;一个项目是采用单体架构了&#xff1f;还是采用前后端分离&#xf…

在docker容器中编译 rk3588 ubuntu固件

文件准备 Linux SDK ---- rk3588_linux_release_20230114_v1.0.6c_0*Ubuntu根文件系统 ---- Ubuntu22.04-Xfce_RK3588_v3.11-27_20240410.img.7z 硬件环境 一个可联网的linux机器&#xff0c;并且装有docker 打包一个docker编译环境 Dockerfile内容 直接通过dockerfile构…

路由引入,过滤实验

实验拓补图 实验目的&#xff1a; 1、按照图示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 loopback口模拟业务网段 2、R1 和 R2 运行 RIPv2,R2&#xff0c;R3和R4运行 OSPF&#xff0c;各自协议内部互通 3、在 RIP 和 oSPF 间配置双向路由引入,要求除 R4 上的…

OceanBase诊断调优 】—— 如何快速定位SQL问题

作者简介&#xff1a; 花名&#xff1a;洪波&#xff0c;OceanBase 数据库解决方案架构师&#xff0c;目前负责 OceanBase 数据库在各大型互联网公司及企事业单位的落地与技术指导&#xff0c;曾就职于互联网大厂和金融科技公司&#xff0c;主导过多项数据库升级、迁移、国产化…

Qt配置CMake出错

一个项目需要在mingw环境下编译Opencv源码&#xff0c;当我用Qt配置opencv的CMakeLists.txt时&#xff0c;出现了以下配置错误&#xff1a; 首先我根据下述博文介绍&#xff0c;手动配置了CMake&#xff0c;但仍不能解决问题。 Qt(MinGW版本)安装 - 夕西行 - 博客园 (cnblogs.…

计算机网络相关知识总结

一、概述 计算机网络可以极大扩展计算机系统的功能机器应用范围&#xff0c;提高可靠性&#xff0c;在为用户提供放方便的同时&#xff0c;减少了整体系统费用&#xff0c;提高性价比。 计算机网络的功能主要有&#xff1a;1. 数据共享&#xff1b;2. 资源共享&#xff1b;3. 管…

equals和==有什么区别?

面试题目 和equals有什么区别&#xff1f;这两个都适用于哪些场景进行比较&#xff1f;为什么重写了equals方法&#xff0c;还必须重写hashcode方法&#xff1f; 这个问题基本上在各面试题库中都会有出现&#xff0c;也是现实项目中使用比较多的一个比较&#xff0c;面试的时…

用html画一个四叶草

<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>四叶草</title> <link href"" rel"stylesheet"> <link rel"stylesheet" href"css/style.css&q…

数字逻辑电路基础-有限状态机

文章目录 一、有限状态机基本结构二、verilog写一个基础有限状态机(moore型状态机)三、完整代码一、有限状态机基本结构 本文主要介绍使用verilog编写有限状态机FSM(finite state machine),它主要由三部分组成,下一状态逻辑电路,当前状态时序逻辑电路和输出逻辑电路。 有…

更易使用,OceanBase开发者工具 ODC 4.2.4 版本升级

亲爱的朋友们&#xff0c;大家好&#xff01;我们的ODC&#xff08;OceanBase Developer Center &#xff09;再次迎来了重要的升级V 4.2.4&#xff0c;这次我们诚意满满&#xff0c;从五个方面为大家精心打造了一个更加易用、贴心&#xff0c;且功能更强的新版本&#xff0c;相…

SAP Fiori开发中的JavaScript基础知识15 - 原型,object,constructor,class,继承

1. 前言 本文将介绍JavaScript中的核心概念 - 原型&#xff0c;并会介绍基于原型的应用场景object&#xff0c;constructor&#xff0c;class&#xff0c;继承。 本文会将这几个核心概念汇总在一篇博客中&#xff0c;因为这些概念是触类旁通的&#xff0c;希望对你有帮助。 …