在React中使用 react-router-dom 编程式路由导航的正确姿势【含V5.x、V6.x】
## react-router-dom 编程式路由导航 (v5)
###### 1.push跳转+携带params参数
```jsx
props.history.push(`/b/child1/${id}/${title}`);
```
###### 2.push跳转+携带search参数
```jsx
props.history.push(`/b/child1?id=${id}&title=${title}`);
```
###### 3.push跳转+携带state参数
```jsx
props.history.push(`/b/child1`, { id, title });
```
###### 4.replace跳转+携带params参数
```jsx
this.props.history.replace(`/home/message/detail/${id}/${title}`)
```
###### 5.replace跳转+携带search参数
```jsx
this.props.history.replace(`/home/message/detail?id=${id}&title=${title}`)
```
###### 6.replace跳转+携带state参数
```jsx
this.props.history.replace(`/home/message/detail`, { id, title });
```
###### 7.前进
```jsx
this.props.history.goForward();
```
###### 8.回退
```jsx
this.props.history.goForward();
```
###### 9.前进或回退 ( go )
```jsx
this.props.history.go(-2); //回退到前2条的路由
```
###### 在一般组件中使用编程式路由导航 (非路由组件)
```jsx
import {withRouter} from 'react-router-dom'
class Header extends Component {
// withRouter(Header)后,就可以在一般组件内部使用 this.props.history
//...
}
export default withRouter(Header)
```
## react-router-dom 编程式路由导航 (v6)
```jsx
// v6版本编程导航使用 useNavigate (以下为引入代码)
import { useNavigate } from "react-router-dom";
export default function A() {
const navigate = useNavigate();
//...
}
```
###### 1.push跳转+携带params参数
```jsx
navigate(`/b/child1/${id}/${title}`);
```
###### 2.push跳转+携带search参数
```jsx
navigate(`/b/child2?id=${id}&title=${title}`);
```
###### 3.push跳转+携带state参数
```jsx
navigate("/b/child2", { state: { id, title }});
```
###### 4.replace跳转+携带params参数
```jsx
navigate(`/b/child1/${id}/${title}`,{replace: true});
```
###### 5.replace跳转+携带search参数
```jsx
navigate(`/b/child2?id=${id}&title=${title}`,{replace: true});
```
###### 6.replace跳转+携带state参数
```jsx
navigate("/b/child2", { state: { id, title },replace: true});
```
>**为您推荐相关文章:**
* 深度解析 React useRef Hook 的使用 !<https://juejin.cn/post/7042583468152356871>
* 最简洁的 Mbox 6.x 基本使用步骤介绍(仅三步)!!!<https://juejin.cn/post/7041103984219652133>
* (干货) 全网最全 react-router-dom v6.0学习指南(新特性深入解读、持续更新...)!!!<https://juejin.cn/post/7040289734836355085>
* (原创)深入解读s React 中的useState Hook 修改了值,但是不重新渲染,不刷新的问提<https://juejin.cn/post/7039237659574665247>
* React中使用 react-router-dom 路由传参的三种方式详解【含V5.x、V6.x】!!!<https://juejin.cn/post/7042849947451916296>
在React中使用 react-router-dom 编程式路由导航的正确姿势【含V5.x、V6.x】的更多相关文章
- vue.js编程式路由导航 --- 由浅入深
编程式路由导航 实例中定义一个方法,这个方法绑定在标签上 然后就设置路由跳转 语法 this.$router.history.push('要跳转路由的地址') <!DOCTYPE html> ...
- vue_VueRouter 路由_路由器管理n个路由_并向路由组件传递数据_新标签路由_编程式路由导航
路由:就是一个 key 与 value 的映射关系.key 就是 pathh 前台路由的 value 是 Component 组件对象 后台路由的 value 是一个 回调函数 普通链接: 会发送请求 ...
- vue-router 编程式路由
$route -> 使用它的属性 $router-> 使用它的方法 编程式的导航,即js控制跳转 //声明式:<router-link :to="..."> ...
- VueJs(10)---vue-router(动态路由,嵌套式路由,编程式路由)
vue-router(动态路由,嵌套式路由,编程式路由) 本文是基于官网学习,官网具体学习目录:vue-router 一.安装 基于vue-cli脚手架安装还是蛮简单的:在文件当前目录下运行: npm ...
- python 全栈开发,Day92(编程式的导航,vue页面布局,marked包的使用)
昨日内容回顾 1. 组件间的传值 1. bus --> 空Vue对象 通过向bus对象抛出自定义事件的方式在组件间传递信息 2. 注意事项: 1. bus.$on()应该在组件mounted(挂 ...
- SpringMVC 解析(四)编程式路由
多数情况下,我们在使用Spring的Controller时,会使用@RequestMapping的形式把请求按照URL路由到指定方法上.Spring还提供了一种编程的方式去实现请求和路由方法之间的路由 ...
- 阶段3 2.Spring_10.Spring中事务控制_9 spring编程式事务控制1-了解
编程式的事物控制,使用的情况非常少,主要作为了解 新建项目 首先导入包坐标 复制代码 这里默认值配置了Service.dao和连接池其他的内容都没有配置 也就说现在是没有事物支持的.运行测试文件 有错 ...
- Spring中声明式事务处理和编程式事务处理的区别
编程式事务:所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理.管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManag ...
- vue编程式路由实现新窗口打开
一. 标签实现新窗口打开: 官方文档中说 v-link 指令被 组件指令替代,且 不支持 target=”_blank” 属性,如果需要打开一个新窗口必须要用标签,但事实上vue2版本的 是支持 ta ...
随机推荐
- [cf1285F]Classical
先枚举$d=\gcd$,然后暴力枚举所有$d$的倍数,相当于求出若干个数中最大的互素对 假设选出的数依从大到小排序后为$a_{i}$,令$g_{i}=\min_{(a_{i},a_{j})=1}j$, ...
- 『学了就忘』Linux软件包管理 — 49、拓展:Linux中通过脚本安装程序
目录 1.脚本程序简介 2.Webmin安装 (1)简介 (2)安装 (3)使用 1.脚本程序简介 脚本程序包并不多见,所以在软件包分类中并没有把它列为一类.它更加类似于Windows下的程序安装,有 ...
- Java-ASM框架学习-修改类的字节码
Tips: ASM使用访问者模式,学会访问者模式再看ASM更加清晰 ClassReader 用于读取字节码,父类是Object 主要作用: 分析字节码里各部分内容,如版本.字段等等 配合其他Visit ...
- c语言是如何处理函数调用的?
1. 要编译的测试代码: int plus(int x, int y) { return x + y; } int main(void) { return plus(3, 4); } 2. main ...
- javascript-初级-day06作用域、JS预解析机制
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- 洛谷 P6276 - [USACO20OPEN]Exercise P(组合数学+DP)
洛谷题面传送门 废了,又不会做/ll orz czx 写的什么神仙题解,根本看不懂(%%%%%%%%% 首先显然一个排列的贡献为其所有置换环的乘积.考虑如何算之. 碰到很多数的 LCM 之积只有两种可 ...
- CF1578I Interactive Rays:ICPC WF Moscow Invitational Contest I 题解
题意简述:在平面上有一个坐标 \((x_c,y_c)\) 和半径 \(r\) 都是整数的圆 \((1\leq r_c\leq \sqrt{x_c^2+y_c^2}-1)\),你可以询问不超过 \(60 ...
- nmap相关
nmap -sT IP-sT(全链接扫描),获取目标IP+PORT的状态,其实是发了三个包:SYN,SYN/ACK,ACK,类似于TCP三次握手 状态: open 开放的 closed 关闭的 fil ...
- js浮点运算的坑
1,js浮点型小数点运算的问题. 这么简单的计算,js竟然算的是错的,究其原因,是因为js小数在内存存储方式的原因. 具体原因: JavaScript 里的数字是采用 IEEE 754 标准的 64 ...
- 05 Windows安装python3.6.4+pycharm环境
windows安装python3.6.4环境 使用微信扫码关注微信公众号,并回复:"Python工具包",免费获取下载链接! 一.卸载python环境 卸载以下软件: 二.安装py ...