iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >React中如何实现路由传参
  • 786
分享到

React中如何实现路由传参

2023-06-25 11:06:09 786人浏览 独家记忆
摘要

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

这篇文章将为大家详细讲解有关React中如何实现路由传参,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

react组件通信的其中一种方式--路由传参(react组件通信的方式有多种,如props、事件回调、context、router、redux、缓存等等)。现在单页面SPA应用的比较广泛,在不刷新整个页面进行部分页面的跳转,使用路由跳转便在所难免,那么react路由除了进行页面之间的跳转,还有很大一个作用就是进行页面或者组件切换时传递参数,从而达到通信的目的。

  咱们用简单的实例对react路由跳转传参的方式进行说明(本文重点为路由传参方式,路由配置以及相关属性暂不展开)

  准备工作,安装路由依赖:

npm install -S react-router-dom

  之后在页面中引入路由:

import Home from './component/ManageSystem';import { BrowserRouter as Router } from 'react-router-dom'function App() {  return (    <Router>               //路由包裹,首页面里面的一个或多个页面可能需要路由切换      <div id="App">        <Home />      </div>    </Router>  );} export default App

ManageSystem.js里面的某一部分需要路由切换显示内容,Route为需要切换的组件,path为路由路径,exact为精确匹配,Link为链接,to表示跳转的路由路径,与Route中的path对应,Redirect为重定向。

import React from 'react';import Loadable from '../utils/loadable'import {Route,Link,withRouter,Redirect,Switch} from "react-router-dom";import { Button } from 'element-react';//动态加载组件,加快首屏渲染const About = Loadable(() => import('./About.js'))const Users = Loadable(() => import('./Users.js'))class Home extends React.Component {    render() {    return (<div style={{ position: 'relative' }}>    <nav style={{ position: 'absolute', top: '0', left: '60%' }}><ul>    <li style={{ marginBottom: '10px' }}>        <Link to={{pathname:"/home/about",query:{ text: '666' }}}>About</Link>    </li>        <li>            <Link to={{pathname:"/home/users/999",state:{ text: '888' }}}>Users</Link></li></ul></nav><div style={{ position: 'absolute', top: '20px', right: '20px' }}>    <Switch>    <Route exact path="/home" component={() => { return null }}>    </Route>    <Route exact path="/home/about" component={About}>    </Route>    <Route exact path="/home/users/:id" component={Users}>    </Route>    <Redirect exact from="/" to='/home' />    </Switch></div></div>);}}export default withRouter(Home)

 重点来了!!!

 在切换路由时,传参方式主要有3种:path动态路径、query、state 

 首先,path动态路径法,设置path的时候在地址中拼接一个动态参数,下面的动态参数为:id

<Route exact path="/home/users/:id" component={Users}></Route>

在进行页面切换或跳转时,将所要传递的信息拼在地址后面,如:

<Link to={{pathname:"/home/users/999"}}>Users</Link>

当切换到Users时,可以通过match来获取其传过来的信息,Users.js如下

import React from "react";class Users extends React.Component {  constructor(props) {    super(props)    this.state = {      id: this.props.match.params.id  //此处获取通过path动态参数拼接传过来的信息    }  }  componentDidMount(){    console.log(this.props,'users props')  }  render() {    return (      <div>        <span>我是users:{this.state.id}</span>      </div>    )  }}export default Users

获取:this.props.match.params.id

可以打印props,查看里面的内容,不难发现,props中存在该信息

React中如何实现路由传参

 那么对应的编程式跳转为:

<button onClick={() => { this.props.history.push({ pathname: '/home/users/999' }) }}>about</button> //同样,用this.props.match.params.id进行取值

第二种传参方法为query,通过参数query将信息传递过去

<Link to={{pathname:"/home/users",query:{ text: '666' }}}>Users</Link>

获取:this.props.location.query.text

同样,打印出来看看

React中如何实现路由传参

 对应的编程式跳转为:

<button onClick={() => { this.props.history.push({ pathname: '/home/users/999', query: { text: '666' } }) }}>Users</button> //同样,获取方式this.props.location.query.text

第三种传参方法为state,通过参数state将信息传递过去,用法与query一致

<Link to={{pathname:"/home/users",state:{ text: '666' }}}>Users</Link>

获取:this.props.location.state.text

同样,打印出来看看

React中如何实现路由传参

 对应的编程式跳转为:

<button onClick={() => { this.props.history.push({ pathname: '/home/users/999', state: { text: '666' } }) }}>Users</button> //同样,获取方式this.props.location.state.text

ps:query跟state用一个重要的区别,那就是在页面跳转之后,重新刷新当前页面,query会消失,而state不会消失,即依然保存在location中。

不妨测试一下,对Users.js页面进行修改,如果query不存在,显示“query已消失”

import React from "react";class Users extends React.Component {  constructor(props) {    super(props)    this.state = {      text: this.props.location.query ? this.props.location.query.text : 'query已消失'    }  }  componentDidMount(){    console.log(this.props,'users props')  }  render() {    return (      <div>        <span>我是users:{this.state.text}</span>      </div>    )  }}export default Users

通过跳转,获取数据正常,query存在

React中如何实现路由传参

React中如何实现路由传参

 重新刷新当前页面,则query消失

React中如何实现路由传参

 页面显示为

React中如何实现路由传参

 同样的过程使用state传参方式,location中state刷新当前页面也不会消失,推荐state方式。

关于“React中如何实现路由传参”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: React中如何实现路由传参

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

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

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

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

下载Word文档
猜你喜欢
  • React中如何实现路由传参
    这篇文章将为大家详细讲解有关React中如何实现路由传参,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。react组件通信的其中一种方式--路由传参(react组件通信的方式有多种,如props、事件回调、...
    99+
    2023-06-25
  • react路由如何实现传参
    这篇文章主要介绍react路由如何实现传参,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一种传参方式,动态路由传参通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示...
    99+
    2023-06-14
  • react中路由跳转及传参的实现
    目录1.useNavigate2.useLocation3.示例1.useNavigate useNavigate 是 React Router v6 中新增的一个 hoo...
    99+
    2023-05-19
    react 路由跳转 react 路由传参
  • Vue中如何实现路由传参
    本篇文章给大家分享的是有关Vue中如何实现路由传参,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。情景模拟:A页面中,有一些div是根据A中的b...
    99+
    2024-04-02
  • React路由参数传递与嵌套路由的实现详细讲解
    目录1. 页面路由参数传递1.1 动态路由参数1.2 search字符串1.3 页面参数隐式传递2. 嵌套路由1. 页面路由参数传递 1.1 动态路由参数 描述: 以“/...
    99+
    2024-04-02
  • vue中怎么实现路由传参
    本篇文章为大家展示了vue中怎么实现路由传参,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在vue路由中,支持3中传参方式。场景,点击父组件的li元素跳转到子组件中...
    99+
    2024-04-02
  • FlutterNavigator路由传参的实现
    目录一、命名路由传参二、构建路由传参第一种方式:第二种方式:Flutter中的默认导航分成两种,一种是命名的路由,一种是构建路由。 一、命名路由传参 应用入口处定义路由表 class...
    99+
    2024-04-02
  • Spring Boot/VUE中如何实现路由传递参数
    这篇文章将为大家详细讲解有关Spring Boot/VUE中如何实现路由传递参数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在路由时传递参数,一般有两种形式,一种是拼接...
    99+
    2024-04-02
  • vue路由如何传参
    在vue中实现路由传参的方法有:1.通过params实现传参;2.通过query实现传参;3.调用$router.push实现传参;具体方法如下:通过params实现路由传参使用路由属性中的name来匹配路由,在通过params传递参数,但...
    99+
    2024-04-02
  • vue3中如何使用router路由实现跳转传参
    这篇文章主要介绍了vue3中如何使用router路由实现跳转传参的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中如何使用router路由实现跳转传参文章都会有所收获,下面我们一起来看看吧。一、路由跳转首...
    99+
    2023-07-05
  • React中路由的参数传递路由的配置文件详解
    目录路由的参数传递配置动态路由路由的配置文件路由的参数传递 传递参数有二种方式(需要注意的是, 这两种方式在Router6.x中都是提供的hook函数的API, 类组件需要通过高阶组...
    99+
    2022-11-13
    React路由参数传递 React路由配置文件 React路由 React路由参数
  • React组件通信之路由传参(react-router-dom)
    目录  最近在学习react,现在的工作中使用的是vue,在学习的过程中对两者进行比较,加深理解。   以下是react中的一小部分知识点,我个人觉得也是比较常用...
    99+
    2024-04-02
  • Flutter Navigator路由传参怎么实现
    今天小编给大家分享一下Flutter Navigator路由传参怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-06-30
  • AngularJS在路由中如何传递参数
    这篇文章主要介绍AngularJS在路由中如何传递参数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:我们不仅可以在控制器中直接定义属性的值,比如:app.controlle...
    99+
    2024-04-02
  • vue3中路由传参query、params及动态路由传参详解
    目录一、query传参二、params传参三、动态传参四、query传参和params传参的区别总结一、query传参 编程式导航 使用router.push 或者 router.r...
    99+
    2024-04-02
  • 浅谈react路由传参的几种方式
    第一种传参方式,动态路由传参 通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示传递的整个url <Link to='/...
    99+
    2024-04-02
  • react native路由跳转如何实现
    这篇文章主要讲解了“react native路由跳转如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react native路由跳转如何实现”吧!react native路由跳转的实现...
    99+
    2023-07-04
  • VUE怎么实现路由传递参数
    本篇内容介绍了“VUE怎么实现路由传递参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在路由时传递参数,一般有两种形式,一种是拼接在url...
    99+
    2023-07-04
  • Vue路由传参加密怎么实现
    本篇内容介绍了“Vue路由传参加密怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,创建一个base64.jsconst ...
    99+
    2023-07-04
  • react路由守卫的实现(路由拦截)
    react不同于vue,通过在路由里设置meta元字符实现路由拦截。在使用 Vue ,框架提供了路由守卫功能,用来在进入某个路有前进行一些校验工作,如果校验失败,就跳转到 404 或...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作