在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 ...
随机推荐
- 深刻理解Spring声明式事务
问题引入 Spring中事务传播有哪几种,分别是怎样的? 理解注解事务的自动配置? SpringBoot启动类为什么不需要加@EnableTransactionManagement注解? 声明式事务的 ...
- [cf720D]Slalom
对于每一行,这些障碍将其划分为若干段,记第$i$行($y=i$时)从左到右第$j$段为$[l_{i,j},r_{i,j}]$ 显然一条路径恰好经过每一行中的一段,且两种方案不同当且仅当其中经过的一段不 ...
- Collection集合框架与Iterator迭代器
集合框架 集合Collection概述 集合是Java中提供的一种容器,可以用来存储多个数据 集合与数组的区别: 数组的长度固定,集合的长度可变 数组中存储的是同一类型的元素,可以存储基本数据类型值, ...
- vue3 高阶 API 大汇总,强到离谱
高阶函数是什么呢? 高阶函数英文名叫:Higher Order function ,一个函数可以接收一个或多个函数作为输入,或者输出一个函数,至少满足上述条件之一的函数,叫做高阶函数. 前言 本篇内容 ...
- vue简单语法梳理
小图不够清楚,可以点击大图查看.
- CF1445E four points
我们不妨枚举四个点的移动方向. 那我们可以直接算出在该情况的最优的答案. #include<iostream> #include<cstdio> #include<alg ...
- 洛谷 P4646 - [IOI2007] flood 洪水(拆点+bfs)
题面传送门 一道挺有意思的题(?) orz djq yyds %%%%%%%%%%%%%%%%%% 首先一个很直观的想法是将每个房间看作一个节点,在有墙的房间旁边连边权为 \(1\) 的边然后 bfs ...
- Matlab流体后处理中的奇淫巧术总结
Matlab流体后处理中的奇淫巧术总结 主要参考\demos\volvec.m示例 1.等值面绘制 %% Isosurface of MRI Data cla load mri D = squeeze ...
- R包MetaboAnalystR安装指南(Linux环境非root)
前言 这是代谢组学数据分析的一个R包,包括用于代谢组学数据分析.可视化和功能注释等众多功能.最近有同事在集群中搭建蛋白和代谢流程,安装这个包出现了问题,于是我折腾了一上午. 这个包的介绍在:https ...
- idea中如何找到重写
Ctrl+O 为了避免写错重写类和快速重写.