目录

参数获取

1、子路由形式携带

2、问号(?)形式参数

3、事件跳转传参


router/index.tsx

import App from "App";
import Home from "pages/Home";
import List from "pages/List";
import Detail from "pages/Detail";
import About from "pages/About";
import Login from "pages/Login";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";const MyRouter = () => (<Router><Routes><Route path="/" element={<App />}><Route index element={<Home />}></Route><Route path="/list/" element={<List />}></Route><Route path="/list/:id" element={<List />}></Route><Route path="/detail" element={<Detail />}></Route><Route path="/about" element={<About />}></Route></Route><Route path="/login" element={<Login />}></Route></Routes></Router>
);export default MyRouter;

App.tsx

import React from "react";
import { Outlet, Link } from "react-router-dom";function App() {return (<div><ul><li><Link to={"/list"}>列表页(不带id)</Link></li><li><Link to={"/list/456"}>列表页(带id)</Link></li><li><Link to={"/detail?id=123"}>详情页</Link></li><li><Link to={"/about"}>关于我们</Link></li></ul><Outlet /></div>);
}export default App;

参数获取

1、子路由形式携带

如上面代码的点击列表页带id "/list/456" 跳转列表页

<Route path="/list/:id" element={<List />}></Route>

此时可以使用React Router Dom提供的Hook  useParams  在列表页获取:

List.tsx

import React from "react";
import { useParams } from "react-router-dom";export default function List() {const { id } = useParams();return (<div><h1>列表 - id: {id}</h1><h1>yusir</h1></div>);
}

2、问号(?)形式参数

<Link to={"/detail?id=123"}>详情页</Link>

点击携带参数进入详情页

此时可以使用React Router Dom提供的Hook  useSearchParams 在详情页获取:

Detail.tsx

import React from "react";
import { useSearchParams } from "react-router-dom";export default function Detail() {const [params] = useSearchParams();console.log(params.getAll('id'))    // ['123']let myId = params.getAll("id")[0];return (<div><h1>Detail - id: {myId}</h1><h1>yusir</h1></div>);
}

3、事件跳转传参

事件中执行跳转页面,可以使用useNavigate这个hook进行跳转。

react-router-dom@6获取路由传参相关推荐

  1. react路由传参问题

    之前在工作中开发一个react项目的时候遇到路由传参的问题,当时因为基础不好,解决这个问题用了好久,还产生了一个bug,特此记录一下. 项目中路由跳转使用的是hashRouter,由于是详情页面跳到审 ...

  2. Vue:路由传参的三种方式

    文章目录 前言 方式一:params 传参(显示参数) 1.声明式 router-link 2.编程式 this.$router.push 方式二:params 传参(不显示参数) 1.声明式 rou ...

  3. react更改路由入参_JavaScript基础教程 react router路由传参

    本篇教程介绍了JavaScript基础教程 react router路由传参,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入. < 今天,我们要讨论的是react ...

  4. 几个经常用到的angular路由Router、ActivatedRoute 知识点:嵌套路由、路由跳转、路由传参、路由参数获取

    深度玩家可移步Angular - 常见路由任务 1.嵌套路由 const routes: Routes = [{path: 'first',component: FirstComponent,//同步 ...

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

    因为react的嵌套路由跟vue比就像屎一样 不好写 所以在使用的时候建议使用react-router-config来配置路由 会相对轻松 第一步 先安装路由依赖 yarn add react-rou ...

  6. React通过url传参和通过路由传参

    是基于我写的上一篇文章<用react的路由写一个简单的导航>上面扩展出来的,朋友们可以去康康. 通过url传参的方法有: 1)直接? 接收:this.props.location.sear ...

  7. react更改路由入参_react怎么路由传参?

    react路由传参(4种方式) 1.通过params传参(刷新页面后参数不消失,参数会在地址栏显示) 路由页面: //注意要配置 /:id 路由跳转并传递参数:链接方式:XX //或: XXjs方式: ...

  8. react路由传参的几种方式

    第一种传参方式,动态路由传参 <Link to='/home/dx'>首页</Link><Route path="/home/:name" compo ...

  9. react路由:路由传参params、search、state

    react路由:路由传参params.search.state(含二级路由和三级路由) 一.准备工作: ​ 1.创建myProject05-router目录 ​ 2.创建清单文件, npm init ...

最新文章

  1. LeetCode 501. 二叉搜索树中的众数
  2. CentOS 8 已是绝版?还有后续么?
  3. jedis_通过Jedis API使用排序集
  4. FJ集团企业级邮件服务器构建方案
  5. 【STM32】随机数发生器相关函数和类型
  6. 可惜Java中没有yield return
  7. EF三种编程方式详细图文教程(C#+EF)之Database First
  8. 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-04项目范围(Scope)管理...
  9. c#中常用集合类和集合接口之接口系列【转】
  10. linux make编译报错 mv,Linux下安装redis
  11. Linux 僵尸进程查杀
  12. 错误: 程序包org.eclipse.swt.graphics不存在/swt.jar下载方法
  13. jQuery WeUI学习笔记二
  14. IOS调用微信扫一扫scanQRCode报错the permission value is offline verifying
  15. 规范国内省份名称【Java】
  16. android电视hdmi声音录音,RK3288 android 5.1 HDMI 喇叭同时输出声音
  17. Python异步: 什么时候使用异步?(3)
  18. 微耕门禁显示通信不上服务器,微耕中性门禁控制器通讯不上是怎么回事?主要有什么注意事项...
  19. 计算机哪所民办学校好,哪所民办高校计算机软件方面好?
  20. 自治智能的数据库云管平台zCloud v3.3正式发布

热门文章

  1. 看了就会的VScode给C++的配置编译环境(Visual Studio Code)
  2. hbase 的shell操作中相关属性说明
  3. 64位ubuntu 12.04下如何解决中文乱码的问题
  4. (转载)从金岳霖到哥德尔
  5. seaborn 教程_使用Seaborn进行数据可视化教程
  6. 机器学习导论�_机器学习导论
  7. ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试
  8. 乔布斯和任正非相比,谁更厉害?
  9. 《花落红尘》:对两性社会非爱即恨的文学消解
  10. 单片机小白学步系列(二)爱上单片机的一万个理由