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 "";
  } 
}


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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • 推荐几个bootstrap 后端UI框架

    推荐几个bootstrap 后端UI框架工欲善其事,必先利其器对于从事软件开发的您也一样,有一套熟悉的bootstrap后台ui框架,bootstrap后端模板让您的开发速度大幅度提升这是本人经常使用到的一些bootstrap后台框架推荐给大家第一名inspiniabootstrap后端模板演示地址http://cn.inspinia.cn效果图cn.inspinia.cn第二名nifty…

  • nginx一个端口配置多个项目_映射地址怎么设置

    nginx一个端口配置多个项目_映射地址怎么设置Nginx默认的80端口如果想要同时配置多个项目,让项目实现不需要指定端口号即可访问,按照如下配置即可更多精彩更多技术博客,请移步IT人才终生实训与职业进阶平台-实训在线前置内容使用Nginx部署Vue项目这片笔记里面介绍了如何使用Nginx部署项目找到对应项目的Nginx配置一般比较规范的配置方式是为每个单独的项目创建.conf文件,如…

  • 竞争的关键驱动的异步通知

    竞争的关键驱动的异步通知

  • 【前端】JavaScript详细教程(三)

    【前端】JavaScript详细教程(三)爬虫必备前端知识之JavaScript第三弹~

  • EagleEye论文+代码

    EagleEye论文+代码EagleEye论文+代码论文代码论文代码论文原作者的代码GitHub链接为EagleEye。下载数据集下载ILSVRC2012数据集。需要先注册账号并登陆。也可以直接用ImageNet数据集代替。如果觉得从官网下载的速度太慢,可以使用迅雷链接或百度云链接,网上都有很多。在这里,我推荐使用一个Linux多线程命令行下载工具aria2,可以达到稳定在5MB/s。安装python包问题一exportGIT_PYTHON_REFRESH=quiet这好像是一个和git有关的问题。解决

  • webgame开发简明教程

    webgame开发简明教程 webgame开发简明教程(1)研究所有点缺乏资料啊。讨论的问题怪怪的。只有很少是能用到的。一、简单的程序框架。webgame程序构成:三大部分。第一是数据流程。第二是程序。第三是美术。其中,数据流程包括了功能。也只有在功能中才能体现数据流程。数据流程相当的麻烦,后面再讨论。比如最简单的卖买产品。要实现这个功能。那么需要有产品基础表、产

发表回复

您的电子邮箱地址不会被公开。

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