React中的路由

react路由篇 嵌套路由是指将一个路由配置嵌套在另一个路由配置中的情况。通过嵌套,我们可以在应用中创建更复杂的页面结构,使得页面的层次关系更加清晰。首先抽象路由表,之后通过递归进行求解子路由,这里只显示两层路由,实际上可以使用 一个递归函数递归出路由来,如下所示path: "/",},path: "/",},}]},},return (return (return (}):null}}) 阅读详情

一、常见的三种路由

(1)页面路由

window.location.href='https://www.hao123.com/'
history.back()

(2)h5路由

window.location = '#hash'
window.onchange = function () {
    console.log(window.location.hash)
}

(3)hash路由

//推进一个状态
history.pushState('name','title','/path')
//替换一个状态
history.replaceState('name','title','/path')

二、React-Router路由介绍

1、路由方式

<BrowserRouter/>  :h5路由

<HashRouter>:hash路由

2、路由规则

<Route/>:包裹组件

3、理由选项

<Switch/>:解决匹配问题,按照顺序匹配,如果匹配到前面的后面的就不匹配了。

例如:/path和、path/list这样的,按照顺序path/list会匹配导/path,达不到想要的效果,加上exact关键词做到完全匹配,必须完全一样才能匹配到。

4、跳转导航,相当于a标签

<Link/>:跳转页面

<NavLink/>:增强版的Link

5、自动跳转

<Redirect/>:不用点击,执行到这块就自动跳转

三、React-Router使用

1、导入包

yarn add react-router-dom

import {BrowserRouter, Route, Link} from "react-router-dom";

2、BrowserRouter包裹

<BrowserRouter>
    <div>
        <Route path={'/'} exact component={Home}></Route>
        <Route path={'/detail/'} component={Detail}></Route>
    </div>
</BrowserRouter>
  • component用来修饰要跳转的路由页面,页面内容为:Home、Detail是两个真实的组件
  • path:匹配的路由规则
  • exact:修饰匹配的效果,加上表示精确匹配,不加表示模糊匹配,例如:
  • path={'/'}表示匹配:http://localhost:3000/,如果是http://localhost:3000/99就无法匹配了
  • path={'/detail/'}表示匹配:http://localhost:3000/detail/xxxxxxx,后面的不限制,前面的的匹配成功就OK了

3、路由的传值

http://localhost:3000/detail

(1)路由参数传值

    路由参数

    <Route path={'/detail/:id'} component={Detail}></Route>

    跳转参数:

    <Link key={index} to={'/detail/' + item.id}>

    接收参数:

    this.props.match.params.id

    打印结果

    3。直接使用

    访问结果

    http://localhost:3000/detail/3

(2)路由参数传值


    路由参数

     <Route path={'/detail'} component={Detail}></Route>

    跳转参数:

    <Link key={index} to={'/detail?=' + item.id}>

    接收参数:

    this.props.location.search

    打印结果

    ?id=3。需要自己解析

    访问结果

    http://localhost:3000/detail?id=3

4、跳转原理

Link的to参数匹配导Route中的path参数,则执行跳转,跳转到Route中的component中设置的组件。

网上摘要的一个图描述的很到位:

 

React 路由,路由跳转,路由传参,子路由(路由嵌套)详细案例 阅读详情

相关推荐

深入理解React路由:构建现代化单页应用的核心技术

在当今Web开发领域,单页应用(SPA)已成为主流,而React作为最受欢迎的前端框架之一,其路由系统是构建复杂应用的关键。本文将全面介绍React路由的概念、实现原理、最佳实践以及高级技巧,帮助你掌握这一核心技术。

vvilkin的学习备忘 1245

React 路由详解(超详细详解)

React React 路由 对SPA的理解 1.单页Web应用(single page web application,SPA)。 2.整个应用只有一个完整的页面。 3.点击页面中的链接不会刷新页面,只会做页面的局部更新。 4.数据都需要通过ajax请求获取, 并在前端异步展现。 路由的理解 1.什么是路由 1.一个路由就是一个映射关系(key:value) 2.key为路径, value可能是function或component 2.路由分类 1.后端路由: 1)理解: value是fun

chen4565的博客 1万+

使用ReactJs React-Bootstrap 构建网站(2):路由器控制

为什么BootStrap效果显示不出来 因为版本不对的原因,React-BootStrap与BootStrap版本要相配。 本人取了如下的匹配 “bootstrap”: “^4.6.0”, “react-bootstrap”: “^1.5.2”, 这个问题困扰了好长时间,网上没有现成的解答,后来看了它提供的示例,才明白。 示例在如下链接里 https://github.com/react-bootstrap/code-sandbox-examples/blob/master/README.md 路由器的

fenboo9416的博客 388

【React】路由(详解)

单页应用程序 SPA: 路由: 前端路由: 后端路由: 路由的基本使用 使用步骤 常用组件说明 BrowserRouter和HashRouter的区别 路由的执行过程 默认路由 精确匹配 Switch的使用 重定向路由 嵌套路由 向路由组件传递参数 1.params参数 2.search参数 3.state参数 编程式路由导航 withRouter

m0_48982503的博客 6296

从零组装电赛送药小车:OpenMV视觉核心+STM32控制,我的软硬件联调全记录

本文详细记录了从零构建电赛智能送药小车的全过程,重点解析了OpenMV视觉识别与STM32控制的深度协同方案。通过硬件选型对比、通信协议设计、PID调参等实战经验,解决了巡线精度、十字路口识别等核心问题,最终实现稳定可靠的送药小车系统,助力电子设计竞赛取得优异成绩。

weixin_42641741的博客 447

DVWA靶场实战:手把手教你绕过文件上传限制,用蚁剑连接一句话木马

本文详细介绍了在DVWA靶场中如何绕过文件上传限制并利用蚁剑连接一句话木马的实战技巧。通过分析文件上传漏洞原理、创建一句话木马、使用Burp Suite拦截修改请求以及配置蚁剑连接WebShell的全过程,帮助安全研究人员深入理解Web安全防护与攻击技术。

weixin_30335575的博客 89

Reactjs路由

BrowserRouter:浏览器的路由方式,也就是在开发中最常使用的路由方式 React Router 是建立在history上的。 即:一个history知道如何去监听浏览器地址栏的变化,并解析这个URL转化为 location 对象,然后 router 使用它匹配到路由,之后正确的渲染出对应的组件。 来一些例子解析一下 首先在终端安装 yarn add react-router-dom -S...

weixin_45348067的博客 283

从SFF-8087到SFF-8643:详解服务器硬盘背板连接线缆的演变与实战接线

本文深度解析了服务器硬盘背板连接技术从SFF-8087到SFF-8643的演进历程,重点介绍了SAS、SATA和U.2接口的技术特点与实战接线方案。通过对比不同连接器标准的物理特性和电气规范,提供了混合环境下的线缆选择策略和常见故障排查指南,帮助IT专业人员优化存储系统性能与稳定性。

weixin_30603633的博客 272

reactjs路由:react-router-dom安装及路由代码示例

这只是 React 路由的基本用法示例,React Router 还提供了更多功能和配置选项,如嵌套路由、路由参数等。React Router 是一个基于 React 的第三方库,提供了一组用于处理路由的组件和 API。这样,当用户点击导航栏中的链接时,React 路由会根据当前的 URL 路径匹配对应的路由规则,并渲染相应的页面组件。接下来,我们可以在应用程序的根组件中设置路由。在上面的示例中,我们首先导入了所需的组件和 API,包括。组件来定义路由规则,并在匹配到对应路由时渲染相应的组件。

学亮编程手记 293

诠视MR眼镜Unity开发设置_Unity2020.3.38

请按照如下设置Android SDK 和 Gradle。打包前先将Unity切换到Android模式。Preferences 设置。

m0_71932574的博客 599

OTFS从零开始11 10

未来的无线网络有望提供全球覆盖,因此需要支持在恶劣环境下的各种新兴应用,例如飞机上的移动通信(MCA)、低地球轨道(LEO)卫星通信、车对车(V2V)通信、高速铁路(HSR)通信、无人驾驶飞机(UAV)通信和水下声学通信(UAC)。在这些恶劣环境中的无线信道通常被视为对通信不友好,其特点是严重的延迟和多普勒扩散,以及有限的路径寿命等。这些不利于通信的特性使目前移动网络中广泛采用的正交频分复用(OFDM)调制的性能恶化。

qq_46009045的博客 9848

从零开始学习ReactJS -- 02 -- 然后要把路由配置起来才能区分页面啊!

从零开始学习React - 02 学习路由配置 查询度娘, react的路由配置有且仅有一种 react-router 、 react-router-dom 经过比较,觉得react-router-dom 更好一些,所以使用react-router-dom 安装react-router-dom npm install react-router-dom 执行完成后安装完成 开始配置 我没有找到react-router-dom的中文官方文档,只能拼凑这看教程来进行学习 单独在src下建立router文件夹进行

GASG的博客 218

手把手教你用 Cursor 写一个完整的 Web 应用(含前后端 + 部署)

本文介绍如何利用Cursor AI工具从零开发一个完整的全栈待办事项Web应用。文章针对开发者常见痛点——无法独立完成项目闭环,提供了一套AI驱动的全栈开发范式。通过Vue3+Node.js+MySQL技术栈,全程由Cursor自动生成项目架构、前后端代码、数据库设计,并解决联调、部署等关键问题。重点展示了如何用AI完成:项目规划与架构设计、后端接口开发、前端页面实现、跨域联调、打包优化及云端部署全流程。该方法将传统需要3-5天的开发工作压缩至1小时内完成,产出规范可上线的项目,特别适合想突破"碎

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 632

reactjs 动态路由 动态导入组件 require和react-loadable 传入变量

1.常规导入组件 常规的导入组件需要在文件开始就将导入的组件写死,如下 import xxx from 'xxx' 现在我需要通过后端返回的数组动态的生成路由,因此在不知道后端返回的情况下,不知道需要导入哪些组件,就需要根据后端返回的组件路径,动态导入组件, 方法一:require 后端返回的数据如下: [{ path: '/login', component: 'Login' }] 可以看见,组件为一个字符串路径。 routes.js如下: /** * 根据数组生成路由数组,主要是根

qq_36706941的博客 2657

【肌电处理】肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率【含Matlab源码 3386期】

肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 820

[UVM]UVM TLM2.0简介及应用实例分析

本文介绍了TLM2.0在UVM中的实现与应用。TLM2.0作为SystemC模型间的核心传输机制,相比TLM1.0提供了更丰富的特性,包括双向阻塞/非阻塞接口、时间标记和统一数据包。文章详细解析了TLM2.0在UVM中的接口实现方式,包括socket类型定义、数据传输机制以及时间标记处理。通过一个具体实例,展示了如何在UVM组件中使用TLM2.0的initiator和target socket进行数据传输,并说明了标准数据包格式和精确时间标记的优势。最后指出TLM2.0在UVM中的实现主要是为了与Syste

元直的博客 5392

reactjs18 中使用路由技巧

react18 版本中,路由的用法发生了变化,react18 版本中,路由由 react-router-dom 包提供。与 react-router 包不同的是,react-router-dom 包提供了 createBrowserRouter 方法,该方法可以创建路由对象。总之,react-router6.x 版本的用法越来越接近 vue3.x 版本,互相借鉴互相学习,vue3 抄 react 的 hooks,react 18抄 vue 的 router 使用方式。

峰会路转的博客 1074

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

React之路由

路由 安装 先用create-react-app生成一个react项目 进入该项目 安装包 react-router-dom 分为2种模式:hash(哈希),browser(浏览器的那种,H5提供的API) 认识路由 路由模块,需要一个路由容器,标识着使用了那种模式的路由 import {容器} from &quot;react-router-dom&quot;; // 容器中存放的就是路由:HashRouter...

努力让自己幸运... 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

React微前端路由reactjs-interview-questions:路由隔离与通信机制

在现代Web应用开发中,微前端(Micro Frontend)架构已成为大型应用的主流解决方案。随着业务复杂度的增加,单一团队维护整个前端应用变得越来越困难。微前端通过将大型应用拆分为多个独立开发、独立部署的子应用,实现了团队自治和技术栈的灵活性。 然而,微前端架构也带来了新的挑战,特别是在路由管理方面。传统的单页面应用(SPA)路由方案无法直接适用于微前端场景,需要设计专门的路由隔离与通信机制...

gitblog_01107的博客 703

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ReactJS 101路由实战:如何使用React Router构建单页应用的7个技巧

在当今前端开发领域,**React Router**已成为构建现代化**单页应用**(SPA)的黄金标准。作为React生态系中最重要的路由管理库,它让开发者能够轻松创建无缝的用户体验,实现页面间的平滑切换而无需重新加载。本文将分享7个实用技巧,帮助初学者快速掌握React Router的核心概念,构建高效的单页应用。 React Router架构图 ## 📋 技巧一:理解React Rou

gitblog_00208的博客 423

React路由

用于获取 URL 路径中的参数。返回一个对象,其中包含当前路由路径中定义的动态参数。特点声明式导航编程式导航实现方式使用或组件使用或history灵活性相对固定,更加直观高度灵活,支持条件导航适用场景静态链接动态路由逻辑和条件导航状态管理自动处理活动状态需手动管理状态HashRouter:适合简单应用,易于配置,但在 SEO 和 URL 美观性方面存在限制。:适合复杂应用,支持现代特性,但需要额外的服务器配置以避免 404 错误。特点HashRouter。

2301_76662406的博客 3869

【React】 react路由

react-route-dom 6

weixin_43872912的博客 1867

React多级路由 React子路由

React多级路由 React子路由设置 新建一个Home.jsx文件 和Home.css文件 css文件内容就不写了 Home 文件内容如下 为了解决点击Link时,路由变化而子路由页面未变化,所以需要在窗口中加入key属性。 import "./Home.css" import React,{ Component } from "react"; import { BrowserRouter...

yj6232779的博客 3326

ReactJS 的5种路由模式

我们一直在使用的路由方式是BrowserRouter,也就是浏览器的路由方式,其实React还有几种路由方式: 1、BrowserRouter:浏览器的路由方式,也就是在开发中最常使用的路由方式 2、HashRouter:在路径前加入#号成为一个哈希值,Hash模式的好处是,再也不会因为我们刷新而找不到我们的对应路径 3、MemoryRouter:不存储history,所有路由过程...

alanbiz1314的博客 1305

react路由嵌套路由及路由传参

因为react的嵌套路由跟vue比就像屎一样 不好写 所以在使用的时候建议使用react-router-config来配置路由 会相对轻松 第一步 先安装路由依赖 yarn add react-router-dom --save yarn add react-router-config --save 第二部 配置路由文件 新建一个routes.js文件 新建pages文件夹和home组件about组件及page2组件 import React from 'react'; impo.

wjw0125的博客 3167

Reactjs之静态路由、动态路由以及Get传值以及获取

1、新增知识点 /* react路由的配置: 1、找到官方文档 https://reacttraining.com/react-router/web/example/basic 2、安装 cnpm install react-router-dom --save 3、找到项目的根组件引入react-router-dom import { B...

weixin_30677073的博客 439
上一篇: Retrofit的封装
下一篇: 仿简书网站技术栈总结-练习
一杯清泉
博客等级 码龄11年 314粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值