加入收藏 | 设为首页 | 会员中心 | 我要投稿 潍坊站长网 (https://www.0536zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

React中怎样完成页面跳转,有多少办法?

发布时间:2022-02-08 14:36:41 所属栏目:语言 来源:互联网
导读:这篇文章给大家分享的是React中实现页面跳转的方法,文中给大家介绍了三种方法。小编觉得挺实用的,因此分享给大家做个参考,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。 本教程操作环境:Windows7系统、react17.0
       这篇文章给大家分享的是React中实现页面跳转的方法,文中给大家介绍了三种方法。小编觉得挺实用的,因此分享给大家做个参考,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
 
      本教程操作环境:Windows7系统、react17.0.1版、Dell G3电脑。
 
     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 "";
  } 
}

(编辑:潍坊站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读