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

一天搞定Recat(5)——ReactRouter(上)【已完结】

     Hello!大家好,今天带来的是React前端JS库的学习,课程来自黑马的往期课程,具体连接地址我也没有找到,大家可以广搜巡查一下,但是总体来说,这套课程教学质量非常高,每个知识点都有一个小案例,最后有一个总的美团外卖案例教学,大家可以看看我这篇文章,如果能够帮到你们,还请多多点赞o( ̄▽ ̄)d支持支持🌹,如果文章中有错误的或者是遗漏信息,可以在评论区指出或者是与我私信。我看到了消息,一定会及时更正过来∠(°ゝ°)。话不多说,直接开学💪⛽️。

     本篇教学已完结,具体可查看教程:
1. 一天搞定React(1)——React安装与配置
2. 一天搞定React(2)——JSX语法
3. 一天搞定React(3)——Hoots组件
4. 一天搞定React(4)——Redux
5. 一天搞定Recat(5)——ReactRouter(上)
6. 一天搞定React(5)——ReactRouter(下)

文章目录

  • ReactRouter
    • 搭建路由环境
    • 路由基础
    • 路由导航
      • 声明式导航
      • 编程式导航
      • 导航传参
        • searchParams传参
        • params传参

ReactRouter

前端路由:一个路径path对应一个组件component当我们在浏览器中访问一个path的时候,path对应的组件会在页面中进行渲染。

搭建路由环境

使用路由我们还是采用CRA创建项目的方式进行基础环境配置。

  1. 创建项目并安装所有依赖

    npx create-react-app 项目名称
    
  2. 安装最新的ReactRouter包

    npm i react-router-dom
    
  3. 启动项目

    npm run start
    

路由基础

  1. src文件夹下新建一个page文件夹,里面创建组件一文件夹和组件二文件夹来代表两个页面。然后在这两个文件夹里面分别创建index.js用来编写代码

  2. 新增一个router模块,里面创建一个index.js,之后导入上面创建的两个模块。还需要导入createBrowserRouter工具。

    import 组件一 from '/路径'
    import 组件二 from '/路径'
    import {createBrowserRouter,RouterProvider} from 'react-router-dom'
    
  3. 创建router实例对象并且配置路由对应关系

    const router = createBrowserRouter([{path:'/第一个页面名称',element:<组件一 />},{path:'/第二个页面名称',element:<组件二 />},
    ])
    
  4. 来到index.js入口文件实现路由绑定

    //首先导入路由
    import router from './路由文件路径'
    //导入RouterProvider
    import {RouterProvider} from 'react-router-dom'root.render(<React.StrictMode><RouterProvider router = {router}></RouterProvider></React.StrictMode>
    )
    

路由导航

路由系统中的多个路由之间需要进行路由跳转,并且在跳转的同时有可能需要传递参数进行通信。

React导航又分为两种,一种是声明式导航,一种是编程式导航。

声明式导航

声明式导航是指通过在模版中通过^组件描述出要跳转到哪里去,比如后台管理系统的左侧菜单通常使用这种方式进行。

import {Link} from 'react-router-dom'
<Link to = "/要跳转的组件路径"> 内容 </Link>

语法说明:通过给组件的to属性指定要跳转到路由path,组件会被渲染为浏览器支持的a链接,如果需要传参直接通过字符串拼接的方式拼接参数即可。

编程式导航

编程式导航是指通过useNavigate钩子得到导航方法,然后通过调用方法以命令式的形式进行路由跳转,比如想在登录请求完毕之后跳转就可以选择这种方式,更加灵活。

import {useNavigate} from 'react-router-dom'//在组件里面执行useNavigate()
const 组件名 =() =>{const navigate = useNavigate()return(<div><标签名 事件={()=> navigate('/要跳转的组件路径')}>内容</标签名></div>)
}

语法说明:通过调用navigate方法传入地址path实现跳转

注: 如果在跳转时不想添加历史记录,可以添加额外参数replace 为true

navigate('/要跳转的组件路径', { replace: true } )

导航传参

searchParams传参

searchParams 是指URL的查询字符串部分,通常用于过滤、分页等操作。

  • 参数跟在?符号后面,多个参数之间用&连接。
  • 参数不是URL路径的一部分,因此不会影响路由匹配。
  1. 路由传参

    navigate('/要跳转的组件路径?属性名=属性值')
    
  2. 来到目标路由获取传递过来的参数

    const [params] = useSearchParams()
    const 属性名 = params.get('属性名')
    
params传参

在Web开发中,params通常指的是路由参数,它是URL路径的一部分,用于传递数据到服务器端。

  1. 设置路由传递参数

    navigate('/要跳转的组件路径/属性值')
    
  2. 来到配置router的文件下加上一个占位符

    const router = createBrowserRouter([{path:'/第一个页面名称/:属性值',	//添加( /:属性值)element:<组件一 />},
    ])
    
  3. 来到目标路由获取传递过来的参数

    const params = useParams()
    const 属性名 = params.属性名
    

相关文章:

一天搞定Recat(5)——ReactRouter(上)【已完结】

Hello&#xff01;大家好&#xff0c;今天带来的是React前端JS库的学习&#xff0c;课程来自黑马的往期课程&#xff0c;具体连接地址我也没有找到&#xff0c;大家可以广搜巡查一下&#xff0c;但是总体来说&#xff0c;这套课程教学质量非常高&#xff0c;每个知识点都有一个…...

TCP/IP 网络模型详解(二)之输入网址到网页显示的过程

当键入网址后&#xff0c;到网页显示&#xff0c;其间主要发生了以下几个步骤&#xff1a; 一、解析URL 下图是URL各个元素所表示的意义&#xff1a; 右边蓝色部分&#xff08;文件的路径名&#xff09;可以省略。当没有该数据时&#xff0c;代表访问根目录下事先设置的默认文…...

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法 一、环境介绍1.1 本次环境规划1.2 kubernetes简介1.3 kubernetes特点二、本次实践介绍2.1 本次实践介绍2.2 报错场景三、查看报错日志3.1 查看pod描述信息3.2 查看pod日志四、报错分析五、故障处理…...

SAP PP学习笔记31 - 计划运行的步骤2 - Scheduling(日程计算),BOM Explosion(BOM展开)

上一章讲了计划运行的5大步骤中的前两步&#xff0c;计算净需求和计算批量大小。 SAP PP学习笔记30 - 计划运行的步骤1 - Net requirements calculation 计算净需求(主要讲了安全库存要素)&#xff0c;Lot-size calculation 计算批量大小-CSDN博客 本章继续讲计划运行的后面几…...

[vue3]配置@指向src

在vit.config.ts里的export default defineConfig添加以下语句 resolve: {alias: {"": "/src", // 配置指向src目录},},...

【多模态大模型】 BLIP in ICML 2022

一、引言 论文&#xff1a; BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 作者&#xff1a; Salesforce Research 代码&#xff1a; BLIP 特点&#xff1a; 该方法分别使用ViT和BERT进行图像和文本特征提取&am…...

Flutter开发Dart 中的 mixin、extends 和 implements

目录 ​​​​​​​前言 1.extends 2.implements 3.mixin 前言 在 Dart 中&#xff0c;mixin、extends 和 implements 是面向对象编程中常用的关键字&#xff0c;它们分别用于不同的继承和实现方式。理解它们的用法和区别对于编写高质量、可维护的 Dart 代码至关重要。本文…...

SAPUI5基础知识20 - 对话框和碎片(Dialogs and Fragments)

1. 背景 在 SAPUI5 中&#xff0c;Fragments 是一种轻量级的 UI 组件&#xff0c;类似于视图&#xff08;Views&#xff09;&#xff0c;但它们没有自己的控制器&#xff08;Controller&#xff09;。Fragments 通常用于定义可以在多个视图中重用的 UI 片段&#xff0c;从而提…...

express连接mysql

一、 安装express npm install express --save二、express配置 //引入 const express require("express"); //创建实例 const app express(); //启动服务 app.listen(8081, () > {console.log("http://localhost:8081"); });三、安装mysql npm i m…...

24暑假算法刷题 | Day24 | LeetCode 93. 复原 IP 地址,78. 子集,90. 子集 II

目录 93. 复原 IP 地址题目描述题解 78. 子集题目描述题解 90. 子集 II题目描述题解 93. 复原 IP 地址 点此跳转题目链接 题目描述 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用…...

Postman本地化测试全攻略:打造多语言API的秘诀

Postman本地化测试全攻略&#xff1a;打造多语言API的秘诀 在全球化的今天&#xff0c;许多应用程序都需要支持多语言环境&#xff0c;以满足不同地区用户的需求。API的本地化测试是确保应用程序能够在不同语言和区域设置下正确运行的关键环节。Postman作为一个强大的API开发和…...

摆弄it:越走越深

在英语中&#xff0c;it是一个单词&#xff0c;就是“它”&#xff0c;这是众所周知的事情。今天&#xff0c;我们就来摆弄一下it&#xff0c;摆弄一下“它”&#xff0c;看看能摆弄出什么名堂来。 一、它是它自己 it 大家都知道&#xff0c;同样&#xff0c;itself&#xff0…...

网页上空格

&#xA0; no-break space(普通的英文半角空格但不换行) 中文全角空格 (一个中文宽度) &ensp; en空格(半个中文宽度) &emsp; em空格 (一个中文宽度) 四分之一em空格 (四分之一中文宽度) 相比平时的空格()&#xff0c;&nbsp拥有不间断(non-breaking)特性。即连续…...

Linux服务管理(四)Apache服务

Apache服务 1、基于IP的虚拟主机2、基于IP端口的虚拟主机3、基于域名的虚拟主机4、prefork模式5、worker模式6、event模式7、细说驱动工作模式和MPM&#xff08;多处理模块&#xff09;工作模式 新旧域名都保留&#xff0c;因为旧域名已有一定的知名度和流量&#xff0c;直接下…...

Qt基础 | TCP通信 | TCP服务端与客户端程序设计 | QTcpServer | QTcpSocket

文章目录 一、TCP 通信1.TCP 通信概述2.TCP 服务器端程序设计2.1 主窗口定义与构造函数2.2 网络监听与 socket 连接的建立2.3 与 TCP 客户端进行数据通信 3.TCP 客户端程序设计3.1 主窗口定义与构造函数3.2 与服务器端建立 socket 连接3.3 与 TCPServer 的数据收发 4.小结 Qt 网…...

设计模式实战:订单处理系统的设计与实现

问题描述 设计一个订单处理系统,支持订单的创建、处理、取消和通知功能。系统需要确保订单处理流程的灵活性和可扩展性。 设计分析 命令模式 命令模式用于将请求封装成对象,从而使我们可以用不同的请求、队列或日志来参数化其他对象。订单处理系统中的每个操作(创建订单…...

[论文笔记]思维链提示的升级版——回退提示

引言 今天又带来一篇提示策略的论文笔记&#xff1a;TAKE A STEP BACK: EVOKING REASONING VIA ABSTRACTION IN LARGE LANGUAGE MODELS。 作者提出了回退提示(STEP-BACK PROMPTING)技术&#xff0c;使大模型能够进行抽象&#xff0c;从包含具体细节的实例中推导出高层次的概念…...

【Redis进阶】主从复制

1. 主从结构引入 在分布式系统中&#xff0c;涉及到一个严重问题&#xff1a;单点问题 即如果某个服务器程序只有一个节点&#xff08;单台机器提供服务&#xff09;&#xff0c;就会出现以下两个问题&#xff1a; 可用性问题&#xff0c;如果这台机器挂了&#xff0c;意味着…...

编程类精品GPTs

文章目录 编程类精品GPTs前言种类ChatGPT - GrimoireProfessional-coder-auto-programming 总结 编程类精品GPTs 前言 代码类的AI, 主要看以下要点: 面对含糊不清的需求是否能引导出完整的需求面对完整的需求是否能分步编写代码完成需求编写的代码是否具有可读性和可扩展性 …...

ubuntu在命令行输出里查找内容,dmesg

直接执行查看日志指令会出来很多页。dmesg为开机日志信息。记录了开机时硬件的过程 sudo dmesg 执行结果&#xff1a; 可以用竖号“|”&#xff0c;在前一条命令返回的内容进行查找。下图为查找bluetooth sudo dmesg |grep -i bluetooth...

Three.js面试必备:从光源类型到性能优化的20个高频考点解析

Three.js面试深度攻略&#xff1a;从核心原理到性能优化的20个技术要点 当面试官抛出"Three.js的光照系统如何影响渲染性能"这类问题时&#xff0c;你是否能条理清晰地拆解环境光与平行光的计算差异&#xff1f;面对"如何实现自定义着色器优化建筑可视化项目的渲…...

北海本地人私藏的美食哪家好

在北海这座滨海城市&#xff0c;海鲜饮食的日常逻辑始终围绕着“活鲜”二字展开。本地食客习惯于清晨去渔港挑海鲜&#xff0c;或选择街边老店加工&#xff0c;追求的是食材本身的呼吸感与原味。而近年来&#xff0c;随着游客流量增长&#xff0c;海鲜餐饮的消费场景发生着结构…...

wordpress数据迁移---没有验证

迁移 WordPress 完整数据&#xff08;文章、页面、媒体、主题、插件、设置、评论、用户&#xff09;&#xff0c;核心是 备份旧站文件 数据库 → 新服务器配置环境 → 上传文件 导入数据库 → 修改配置 替换域名 / URL → 测试。下面分 插件一键迁移&#xff08;新手推荐&am…...

从‘发快递’到‘收快递’:手把手拆解RocketMQ 5.x中Group、Topic、Queue的实战配置与避坑指南

从‘发快递’到‘收快递’&#xff1a;手把手拆解RocketMQ 5.x中Group、Topic、Queue的实战配置与避坑指南 想象一下你正在搭建一个电商系统&#xff0c;订单创建后需要实时通知库存服务扣减库存、支付服务生成账单、物流服务准备发货。这种异步解耦的场景正是消息队列的用武之…...

SOLIDWORKS自定义属性模板制作全攻略:从零开始驱动模型参数

SOLIDWORKS自定义属性模板制作全攻略&#xff1a;从零开始驱动模型参数 在机械设计领域&#xff0c;SOLIDWORKS作为主流的三维CAD软件&#xff0c;其自定义属性功能往往被初学者低估。想象一下这样的场景&#xff1a;当你需要批量修改上百个零件的材料规格时&#xff0c;是否还…...

VS2015+C++实战:手把手教你用海康MVS里的Demo搞定多相机同步采图与保存

VS2015C实战&#xff1a;海康MVS工业相机多机同步采图全流程解析 工业视觉检测系统中&#xff0c;多相机同步采图是个经典需求。上周帮朋友调试8台海康威视相机组成的检测线时&#xff0c;发现网上完整案例实在太少。今天我就以VS2015开发环境为例&#xff0c;带大家深入MVS安装…...

Windows Defender的MsMpEng.exe为什么总在“瞎忙”?从机制到应对的深度解读

Windows Defender的MsMpEng.exe高占用现象&#xff1a;机制解析与精准优化策略 你是否经历过这样的场景&#xff1a;正在紧急编译代码时&#xff0c;风扇突然狂转&#xff0c;任务管理器里MsMpEng.exe的CPU使用率飙升至90%&#xff1b;或者拷贝大型设计文件时&#xff0c;系统卡…...

SMUDebugTool终极指南:AMD Ryzen系统硬件调试与性能优化的完整解决方案

SMUDebugTool终极指南&#xff1a;AMD Ryzen系统硬件调试与性能优化的完整解决方案 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目…...

PostGIS中ST_Area计算面积时单位转换的实用技巧

1. 为什么ST_Area在WGS84坐标系下计算结果不对劲&#xff1f; 第一次用PostGIS的ST_Area函数计算地理围栏面积时&#xff0c;我盯着屏幕上那个小得离谱的数字愣了半天——0.000002&#xff1f;这还没我家卫生间大&#xff01;后来才发现&#xff0c;原来90%的新手都会在这个坑里…...

Qwen3.5-2B保姆级教程:20亿参数模型端侧部署与图文对话实操

Qwen3.5-2B保姆级教程&#xff1a;20亿参数模型端侧部署与图文对话实操 1. 模型简介 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本(20亿参数)。这个模型专为低功耗、低门槛部署场景设计&#xff0c;特别适合在端侧和边缘设备上运行…...