react-route的路由

2023-09-18 23:28:59

React-Router是一个基于React的强大路由库,它可以帮助我们在React应用中实现页面之间的跳转和路由管理。本文将详细介绍React-Router的路由功能、常用功能模块、路由传参和路由嵌套,并提供相关代码和解释。

路由功能

React-Router通过管理URL和组件的映射关系,可以帮助我们实现以下路由功能:

  • 路由跳转:通过URL的改变,实现页面之间的跳转。
  • 嵌套路由:将多个组件按照层次结构嵌套在一起,形成复杂的页面结构。
  • 路由传参:将参数传递给组件,实现动态的页面展示。
  • 路由守卫:在路由跳转前,进行权限验证或其他操作,控制页面的访问权限。
  • 动态路由:根据URL的不同,动态地加载不同的组件。

常用功能模块

React-Router提供了多种功能模块,可以帮助我们实现路由管理。以下是常用的功能模块:

BrowserRouter

BrowserRouter是React-Router的核心组件之一,它使用HTML5的history API来实现路由跳转。在应用中只需要使用一个BrowserRouter组件即可。

import { BrowserRouter } from 'react-router-dom';

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById('root')
);

Route

Route组件是React-Router中最重要的组件之一,它用于将URL和组件进行映射。可以使用exact属性来指定精确匹配,使用path属性来指定URL路径,使用component属性来指定对应的组件。

import { Route } from 'react-router-dom';

<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />

Link

Link组件用于在应用中实现路由跳转,它可以生成一个可点击的链接,点击后会跳转到指定的URL路径。

import { Link } from 'react-router-dom';

<Link to="/">Home</Link>
<Link to="/about">About</Link>
<Link to="/contact">Contact</Link>

Switch

Switch组件用于在多个Route组件中选择一个匹配的组件进行渲染。它会遍历所有的Route组件,找到第一个匹配的组件进行渲染。

import { Switch, Route } from 'react-router-dom';

<Switch>
  <Route exact path="/" component={Home} />
  <Route path="/about" component={About} />
  <Route path="/contact" component={Contact} />
</Switch>

路由传参

React-Router可以通过URL参数的方式,将参数传递给组件。可以使用props.match.params来获取URL参数。

import { Route } from 'react-router-dom';

<Route path="/user/:id" component={User} />

class User extends React.Component {
  render() {
    const { id } = this.props.match.params;
    return <div>User ID: {id}</div>;
  }
}
<NavLink to="/home/router?like='结衣'&say=121212">路由组件的传参</NavLink>

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

//跳转
 <NavLink to="/home/router/555/久久喝酒?like='结衣'&say=121212">路由组件的传参</NavLink>
//显示
 <Route path={'/home/router/:id/:app'}    component={Routeobj}></Route>

在这里插入图片描述

<NavLink to={{pathname:"/home/router",search:"?like='结衣'&say=121212"}}>路由组件的传参</NavLink>
<NavLink to={{pathname:"/home/router",state:{name:'影子'}}} >路由组件的传参</NavLink>

路由嵌套

React-Router可以将多个组件按照层次结构嵌套在一起,形成复杂的页面结构。在父组件中使用Route组件来定义子组件的路由。

import { Route } from 'react-router-dom';

<Route path="/about" component={About}>
  <Route path="/about/history" component={History} />
  <Route path="/about/team" component={Team} />
  <Route path="/about/contact" component={Contact} />
</Route>

以上就是React-Router的路由功能、常用功能模块、路由传参和路由嵌套的详细介绍。希望本文能够帮助您更好地了解React-Router,并在实际开发中使用它来实现路由管理。

更多推荐

华为数通方向HCIP-DataCom H12-831题库(单选题:121-140)

第121题在华为交换机上配置RADIUS服务器模板时,下列选项中哪些参数为可选的配置参数?A、认证服务器地址和端口B、RADIUS自动探测用户C、计费服务器地址和端口D、Shared-key答案:B解析:在华为交换机上配置radius服务器模板时,需要配置共享秘钥,认证服务器地址和端口,计费服务器地址和端口。可选配置r

[Linux入门]---gdb调试

文章目录0.前言1.gdb调试课前需知gdb指令2.总结0.前言平时我们在Windows操作系统下写代码的时候经常会写出bug,此时必不可少地会使用我们VS编译器的调试工具,而我们在Linux操作系统使用gcc编译器时,出现了bug又应该怎么进行调试呢?接下来让我们一起学习一下Linux调试器—gdb吧!1.gdb调试

同步 -- 信号量

本篇文章基于Linux-6.5源码建议:搭配Linux源码观看更佳structsemaphore{raw_spinlock_tlock;//保护信号量的自旋锁unsignedintcount;//最大同时可访问临界区的进程数量structlist_headwait_list;//等待队列,wait_list指向队列末尾

ansible

DevOps:官网:https://docs.ansible.com自动化运维工具对比C/S架构:客户端/服务端Puppet:基于Ruby开发,采用C/S架构,扩展性强,基于SSL,远程命令执行相对较弱SaltStack:基于Python开发,采用C/S架构,YAML使得配置脚本更简单.需要配置客户端及服务器端;每台被

【无标题】

想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web

1.6python基础语法——输出

作用:程序输出内容给用户1)格式化符号格式符号转换%s字符串%d有符号的十进制整数%f浮点数%c字符%u无符号十进制整数%o八进制整数%x十六进制整数(小写ox)%X十六进制整数(大写OX)%e科学计数法(小写’e’)%E科学计数法(大写’E’)%g%f和%e的简写%G%f和%E的简写技巧%06d,表示输出的整数显示位

十、阶段实践练习

阶段实践练习1.阶段实践练习1.1.练习1~~~~象棋口诀1.2.练习2~~~~输出汇款单1.3.练习3~~~~输出个人信息1.4.练习4~~~~计算月收入1.5.练习5~~~~计算商和余数1.6.练习6~~~~判断成绩能否及格1.7.练习7~~~~话费充值1.8.练习8~~~~货车装西瓜———————————————

2023-09-21 事业-代号z-个人品牌-对事务并发控制理论的精通-缺陷-分析

摘要:对于数据库内核专家来说,对于事务并发控制的理论的精通是必备的,但是最近这段时间,我能明显到理论和现实的割裂性,这种情况不但对于理论的驾驭存在挑战,将理论推行到实践也面临挑战.本文对此种情况做一些分析.上下文相关:2023-09-20事业-代号z-个人品牌-数据库内核专家-分析_财阀悟世的博客-CSDN博客需要直接

第七天:gec6818开发板QT和Ubuntu中QT安装连接sqlite3数据库驱动环境保姆教程

sqlite3数据库简介帮助文档SQLProgramming大多数关系型数的操作步骤:1)连接数据库多数关系型数据库都是C/S模型(Client/Server)sqlite3是一个本地的单文件关系型数据库,同样也有“连接”的过程2)操作数据库作为程序员,对数据库最常见的操作就是增删改查3)关闭数据库连接也是一种资源,用

差分数组leetcode 2770 数组的最大美丽值

什么是差分数组差分数组是一种数据结构,它存储的是一个数组每个相邻元素的差值。换句话说,给定一个数组arr[],其对应的差分数组diff[]将满足:diff[i]=arr[i+1]-arr[i]对于所有0<=i<n-1差分数组的作用用于高效地实现某些特定的数组操作,如对某一范围的数组元素全部增加或减少一个固定值。例如,考

Jenkins学习笔记5

[root@localhost~]#cd/var/lib/jenkins/workspace/nginx_root_sync[root@localhostnginx_root_sync]#lltotal16-rw-r--r--1jenkinsjenkins6Sep2020:571.php-rw-r--r--1jenki

热文推荐