我的编程空间,编程开发者的网络收藏夹
学习永远不晚

react中路由跳转及传参的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

react中路由跳转及传参的实现

1.useNavigate

useNavigate 是 React Router v6 中新增的一个 hook,可以用来进行路由跳转。

使用 useNavigate hook 首先需要安装 react-router-dom@next,然后在函数式组件中引入:

import { useNavigate } from 'react-router-dom';
function MyComponent() {
  const navigate = useNavigate();
  function handleClick() {
    navigate('/target-path');
  }
  return (
    <button onClick={handleClick}>跳转到目标路径</button>
  );
}

useNavigate 返回一个 navigate 函数,可以用来进行路由跳转和监听路由变化。与 history.push 不同,navigate 不会在浏览器历史记录中添加重复的路由记录。如果需要添加新的历史记录,可以使用 navigate({ pathname, state }) 的形式。

import { useNavigate } from 'react-router-dom';
function MyComponent() {
  const navigate = useNavigate();
  function handleClick() {
    navigate('/target-path', { state: { name: 'John', age: 25 } });
  }
  return (
    <button onClick={handleClick}>跳转到目标路径</button>
  );
}

navigate 函数还可以接收一个 options 对象,可以用来配置路由跳转的方式。以下是一些常用的配置选项:

  • replace:是否替换当前页面的历史记录;
  • state:传递的状态数据;
  • replace:是否替换当前页面的历史记录;
  • shoudlNavigate:是否允许进行路由跳转;
  • replace:是否替换当前页面的历史记录。
import { useNavigate } from 'react-router-dom';
function MyComponent() {
  const navigate = useNavigate();
  function handleClick() {
    navigate('/target-path', {
      state: { name: 'John', age: 25 },
      replace: true,
      shouldNavigate: true
    });
  }
  return (
    <button onClick={handleClick}>跳转到目标路径</button>
  );
}

2.useLocation

在 React Router 中,可以通过 useLocation hook 来获取传递的参数和路径信息。以下是一个示例:

import { useLocation } from 'react-router-dom';
function TargetComponent() {
  const location = useLocation();
  const searchParams = new URLSearchParams(location.search);
  const name = searchParams.get('name');
  const age = searchParams.get('age');
  const data = location.state;
  return (
    <div>
      <p>当前路径:{location.pathname}</p>
      <p>查询参数:{`name=${name}, age=${age}`}</p>
      <p>状态数据:{JSON.stringify(data)}</p>
    </div>
  );
}

在目标页面中,可以通过 useLocation hook 获取路由路径信息和传递的参数,然后使用 URLSearchParams 对象和 location.state 属性来获取具体的值。其中:

  • location.pathname 表示当前页面的路径;
  • location.search 表示传递的查询参数,可以使用 URLSearchParams 对象来进行解析;
  • location.state 表示传递的状态数据,可以在目标页面中获取。

注意,在使用 URLSearchParams 对象时,需要先调用 new URLSearchParams(location.search) 来创建一个实例,然后调用 get 方法来获取具体的参数值。

使用 useNavigate 进行路由跳转并传递参数的示例如下:

import { useNavigate } from 'react-router-dom';
function MyComponent() {
  const navigate = useNavigate();
  function handleClick() {
    navigate('/target-path', { state: { name: 'John', age: 25 } });
  }
  return (
    <button onClick={handleClick}>跳转到目标路径</button>
  );
}

3.示例

在跳转到目标路径时,可以使用 state 选项来传递数据。在目标页面中,可以使用 useLocation hook 获取传递的数据,示例如下:

import { useLocation } from 'react-router-dom';
function TargetComponent() {
  const location = useLocation();
  const data = location.state;
  return (
    <div>
      <p>姓名:{data.name}</p>
      <p>年龄:{data.age}</p>
    </div>
  );
}

在目标页面中,可以通过 location.state 属性获取传递的数据。注意,如果没有传递数据,则 location.state 的值为 undefined,需要进行判断处理。

到此这篇关于react中路由跳转及传参的实现的文章就介绍到这了,更多相关react 路由跳转及传参内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

react中路由跳转及传参的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

react中路由跳转及传参的实现

本文主要介绍了react中路由跳转及传参的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-19

vue3路由配置以及路由跳转传参详解

路由跳转的同时传递参数是比较常见的,下面这篇文章主要给大家介绍了关于vue3路由配置以及路由跳转传参的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-05-16

React中如何实现路由传参

这篇文章将为大家详细讲解有关React中如何实现路由传参,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。react组件通信的其中一种方式--路由传参(react组件通信的方式有多种,如props、事件回调、
2023-06-25

react路由如何实现传参

这篇文章主要介绍react路由如何实现传参,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一种传参方式,动态路由传参通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示
2023-06-14

vue3中怎么使用router路由实现跳转传参

本文小编为大家详细介绍“vue3中怎么使用router路由实现跳转传参”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3中怎么使用router路由实现跳转传参”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一
2023-07-06

vue3中如何使用router路由实现跳转传参

这篇文章主要介绍了vue3中如何使用router路由实现跳转传参的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中如何使用router路由实现跳转传参文章都会有所收获,下面我们一起来看看吧。一、路由跳转1
2023-07-05

react native路由跳转如何实现

这篇文章主要讲解了“react native路由跳转如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react native路由跳转如何实现”吧!react native路由跳转的实现
2023-07-04

react native路由跳转怎么实现

react native路由跳转的实现方法:1、使用“yarn add react-navigation”命令安装“react-navigation”;2、通过“yarn add react-native-gesture-handler”命令安装“react-native-gesture-handler”组件;3、设置好初始路由,然后以类的组件的形式导出即可。
2023-05-14

uniapp小程序路由跳转,使用uni.navigateBack方法,实现跳转传参

由于小程序跳转限制10层,为了尽可能的减少页面栈,在小程序中会用到uni.navigateBack()方法,使用中难免会遇到页面跳转之间传参的问题。uni.navigateBack和uni.navigateTo、uni.redirect
2023-08-17

react-router-dom路由跳转怎么实现

react-router-dom路由跳转的实现方法:1、打开相应的js文件;2、通过useNavigate方法手动操作进行路由跳转;3、通过state属性进行路由传值,并用useLocation方法获取参数。
2023-05-14

react-router-dom路由跳转如何实现

这篇“react-router-dom路由跳转如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react-router
2023-07-04

react如何实现路由跳转前确认

这篇文章主要介绍“react如何实现路由跳转前确认”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react如何实现路由跳转前确认”文章能帮助大家解决问题。react实现路由跳转前确认功能的方法:1、
2023-07-05

React中的路由嵌套和手动实现路由跳转的方式详解

这篇文章主要介绍了React中的路由嵌套和手动实现路由跳转的方式,手动路由的跳转,主要是通过Link或者NavLink进行跳转的,实际上我们也可以通JavaScript代码进行跳转,需要的朋友可以参考下
2022-11-13

uniapp路由怎么实现带参数的跳转

UniApp是一款跨平台开发框架,支持编写一次代码即可同时发布到多个平台。在UniApp中,我们经常需要使用路由跳转功能来实现不同页面之间的跳转。其中,带参数跳转是比较常见的一种情况。本文将介绍如何使用UniApp路由带参数跳转。一、路由跳转在UniApp中,我们通过uni.navigateTo()函数实现路由跳转。通过该函数可以实现从一个页面跳转到另一个页面,例如从首页跳转到
2023-05-14

vue中如何实现路由跳转

这篇文章主要介绍vue中如何实现路由跳转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!跳转方式:1、用“”语句;2、用“this.$router.push()”语句;3
2023-06-25

编程热搜

目录