react路由跳转

react路由跳转React中几种页面跳转方式1、使用react-router-dom中的Link实现页面跳转一般适用于,点击按钮或其他组件进行页面跳转,具体使用方式如下:<Linkto={{pathname:’/path/newpath’,state:{//页面跳转要传递的数据,如下data1:{},data2:[]},}}><Butt

大家好,又见面了,我是你们的朋友全栈君。

React中几种页面跳转方式

1、使用 react-router-dom 中的 Link 实现页面跳转

一般适用于,点击按钮或其他组件进行页面跳转,具体使用方式如下:

<Link
    to={ 
   { 
   
        pathname: '/path/newpath',
        state: { 
     // 页面跳转要传递的数据,如下
              data1: { 
   },
              data2: []
        },
    }}
>
   <Button>
        点击跳转
   </Button>
</Link>

2、使用 react-router-redux 中的 push 进行页面跳转

react-router-redux 中包含以下几个函数,一般会结合redux使用:

push – 跳转到指定路径
replace – 替换历史记录中的当前位置
go – 在历史记录中向后或向前移动相对数量的位置
goForward – 向前移动一个位置。相当于go(1)
goBack – 向后移动一个位置。相当于go(-1)
具体使用时通过发送disppatch来进行页面跳转:

let param1 = { 
   }
dispatch(push("/path/newpath'", param1));
dispatch(replace("/path/newpath'", param1));

3、使用RouteComponentProps 中的history进行页面回退

一般在完成某种操作,需要返回上一个页面时使用。

this.props.history.goBack();  

4、打开一个新的tab页,并截取路径

首先定义路由为 :

path: "/pathname/:param1/:param2/:param3",

点击事件跳转到新页面 打开一个新的tab:

window.open(pathname/${param1}/${param2}/${param3})
在新的页面获取路径上的参数:

param1:  this.props.match.params.param1, 
param2:  this.props.match.params.param2, 
param3:  this.props.match.params.param3, 

获取路径参数 :

path?key1=value1&key2=value2
const query = this.props.match.location.search 
const arr = query.split('&')  // ['?key1=value1', '&key2=value2']
const successCount = arr[0].substr(6) // 'value1'
const failedCount = arr[1].substr(6) // 'value2'

或者


function GetUrlParam(url, paramName) { 
   
  var arr = url.split("?");

  if (arr.length > 1) { 
   
    var paramArr= arr[1].split("&");
    var arr;
    for (var i = 0; i < paramArr.length; i++) { 
   
      arr = paramArr[i].split("=");

      if (arr != null && arr[0] == paramName) { 
   
        return arr[1];
      }
    }
    return "";
  }else { 
   
    return "";
  } 
}


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140807.html原文链接:https://javaforall.net

(1)
上一篇 2022年5月27日 上午9:00
下一篇 2022年5月27日 上午9:00


相关推荐

  • UML图:活动图详细介绍

    UML图:活动图详细介绍活动图简介什么是活动图(ActivityDiagram)活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流,活动图在本质上是一种流程图;活动图着重表现从一个活动到另一个活动的控制流活动图元素动作状态(ActionState)动作状态是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态在UML中的动作状态图用平滑的圆角矩形表示动作状态的特点动作状态是原子的,无法分解为更小的部分动作状态是不可中断的,一旦开始

    2022年5月1日
    53
  • udp数据包大小问题

    udp数据包大小问题参考 UDP 数据包大小问题几个关键点 1 以太网 Ethernet 在数据链路层 数据帧的长度必须在 46 1500 字节之间 这个 1500 字节被称为链路层的 MTU 最大传输单元 已经减去首部和尾部的 18 字节 这个 1500 字节就是网络层 IP 数据报的长度限制 因为 IP 数据报的首部为 20 字节 所以 IP 数据报的数据区长度最大为 1480 字节 而这个 1480 字节就是用来放 TCP 传来的 TCP 报文段或 UD

    2025年10月22日
    5
  • fstab 介绍

    fstab 介绍转载 nbsp nbsp nbsp nbsp nbsp http forum ubuntu org cn viewtopic php t 58468 nbsp nbsp 主要翻译自 http www tuxfiles org linuxhelp fstab html 根据自己的理解做了修改和补充可能玩 Linux 的朋友都知道 fstab 这个文件 如果要用好 linux 熟悉 linux 的一些核心配置文件是必要的 而 fstab

    2026年3月19日
    2
  • javaweb-Lucene-1-61

    javaweb-Lucene-1-61

    2021年5月18日
    128
  • 数据库系统概论课后习题答案(第五版 王珊、萨师煊)

    数据库系统概论课后习题答案(第五版 王珊、萨师煊)第1章绪论1.试述数据、数据库、数据库系统、数据库管理系统的概念。答:(l)数据(Data):描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表

    2025年7月24日
    5
  • arraylist遍历 并删除_js遍历list对象

    arraylist遍历 并删除_js遍历list对象//第一种遍历 ArrayList 对象的方法foreach(object o in al){Console.Write(o.ToString()+” “);}//第二种遍历 ArrayList 对象的方法IEnumerator ie=al.GetEnumerator();while(ie.MoveNext()){Console.Write(ie.Curret.ToString()+” “);

    2026年4月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号