iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >react中路由跳转及传参的实现
  • 505
分享到

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

react路由跳转react路由传参 2023-05-19 08:05:41 505人浏览 安东尼
摘要

目录1.useNavigate2.useLocation3.示例1.useNavigate useNavigate 是 React Router v6 中新增的一个 hoo

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 路由跳转及传参内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: react中路由跳转及传参的实现

本文链接: https://www.lsjlt.com/news/212627.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • react中路由跳转及传参的实现
    目录1.useNavigate2.useLocation3.示例1.useNavigate useNavigate 是 React Router v6 中新增的一个 hoo...
    99+
    2023-05-19
    react 路由跳转 react 路由传参
  • vue3路由配置以及路由跳转传参详解
    目录1、安装路由2、编写需要展示的路由3、配置路由3、使用路由4、編程式路由5、路由传参5、1query参数传递5、2传递params参数 6、子路由配置总结1、安装路由 ...
    99+
    2023-05-16
    vue3 路由跳转 vue3路由配置 vue跳转传参数
  • React中如何实现路由传参
    这篇文章将为大家详细讲解有关React中如何实现路由传参,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。react组件通信的其中一种方式--路由传参(react组件通信的方式有多种,如props、事件回调、...
    99+
    2023-06-25
  • vue3中如何使用router路由实现跳转传参
    这篇文章主要介绍了vue3中如何使用router路由实现跳转传参的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中如何使用router路由实现跳转传参文章都会有所收获,下面我们一起来看看吧。一、路由跳转首...
    99+
    2023-07-05
  • vue3中怎么使用router路由实现跳转传参
    本文小编为大家详细介绍“vue3中怎么使用router路由实现跳转传参”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3中怎么使用router路由实现跳转传参”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一...
    99+
    2023-07-06
  • react路由如何实现传参
    这篇文章主要介绍react路由如何实现传参,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一种传参方式,动态路由传参通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示...
    99+
    2023-06-14
  • react native路由跳转怎么实现
    本教程操作环境:Windows10系统、React Native0.67版、Dell G3电脑。react native路由跳转怎么实现?React Native-路由跳转搭建完RN开发环境后,要实现多个页面之间的跳转。 1.这时需要安装r...
    99+
    2023-05-14
    react-native
  • react native路由跳转如何实现
    这篇文章主要讲解了“react native路由跳转如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react native路由跳转如何实现”吧!react native路由跳转的实现...
    99+
    2023-07-04
  • uniapp小程序路由跳转,使用uni.navigateBack方法,实现跳转传参
    由于小程序跳转限制10层,为了尽可能的减少页面栈,在小程序中会用到uni.navigateBack()方法,使用中难免会遇到页面跳转之间传参的问题。uni.navigateBack和uni.navigateTo、uni.redirect...
    99+
    2023-08-17
    微信小程序 小程序
  • react-router-dom路由跳转怎么实现
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react-router-dom路由跳转怎么实现?React-Router-dom路由跳转useNavigateuseNavigate方法可以手动操作进行...
    99+
    2023-05-14
    React
  • react-router-dom路由跳转如何实现
    这篇“react-router-dom路由跳转如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react-router...
    99+
    2023-07-04
  • vue3.0 router路由跳转传参问题(router.push)
    目录vue3 router路由跳转传参路由跳转页面传参需要注意的问题路由(vue-router)配置及语法总结vue3 router路由跳转传参 vue3.0取消了2.0部分api,...
    99+
    2023-02-15
    vue3 router router路由跳转传参 vue3 router.push
  • react如何实现路由跳转前确认
    这篇文章主要介绍“react如何实现路由跳转前确认”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react如何实现路由跳转前确认”文章能帮助大家解决问题。react实现路由跳转前确认功能的方法:1、...
    99+
    2023-07-05
  • vuejs如何实现路由跳转传值
    这篇文章主要为大家展示了“vuejs如何实现路由跳转传值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vuejs如何实现路由跳转传值”这篇文章吧。 ...
    99+
    2024-04-02
  • React利用路由实现登录界面的跳转
    上一篇在配置好了webpack和react的环境后,接下来开始写登录界面,以及接下来的跳转到主页的功能。 1、首先看一下总体的目录结构。 因为很多时候在看别人写的例子的时候因为目录...
    99+
    2024-04-02
  • uniapp路由怎么实现带参数的跳转
    UniApp是一款跨平台开发框架,支持编写一次代码即可同时发布到多个平台。在UniApp中,我们经常需要使用路由跳转功能来实现不同页面之间的跳转。其中,带参数跳转是比较常见的一种情况。本文将介绍UniApp路由带参数跳转。一、路由跳转在Un...
    99+
    2023-05-14
  • React中的路由嵌套和手动实现路由跳转的方式详解
    目录React的路由嵌套手动路由的跳转React的路由嵌套 接上一篇文章, 在上一篇文章中讲解了路由的基本介绍, 我再来介绍一下路由的其他用法 在开发中,路由之间是存在嵌套关系的。 ...
    99+
    2022-11-13
    react路由嵌套 react路由跳转 react手动路由跳转
  • React路由参数传递与嵌套路由的实现详细讲解
    目录1. 页面路由参数传递1.1 动态路由参数1.2 search字符串1.3 页面参数隐式传递2. 嵌套路由1. 页面路由参数传递 1.1 动态路由参数 描述: 以“/...
    99+
    2024-04-02
  • 关于vue中路由的跳转和参数传递,参数获取
    目录vue中的路由讲三点html中通过<router-link>指令完成路由跳转第一种情况就是以path形式第二种情况就是以路由对象Object的形式最后谈谈$route...
    99+
    2024-04-02
  • FlutterNavigator路由传参的实现
    目录一、命名路由传参二、构建路由传参第一种方式:第二种方式:Flutter中的默认导航分成两种,一种是命名的路由,一种是构建路由。 一、命名路由传参 应用入口处定义路由表 class...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作