广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >浅谈react路由传参的几种方式
  • 316
分享到

浅谈react路由传参的几种方式

2024-04-02 19:04:59 316人浏览 八月长安
摘要

第一种传参方式,动态路由传参 通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示传递的整个url <Link to='/

第一种传参方式,动态路由传参

通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示传递的整个url


<Link to='/home?name=dx'>首页</Link>

如果想真正获取到传递过来的参数,需要在对应的子组件中
this.props.location.search 获取字符串,再手动解析

因为传参能够被用户看见,传递获取比较麻烦,所以不推荐

第二种传参方式,隐式路由传参


<Link to={{
     pathname: 'about',
     state: {
      name: 'dx'
     }
    }}>关于</Link>

所谓隐式路由传参,就是传参的信息不回暴露在url中,当点击该link标签,想要获取到传递的参数,就在对应的路由组件中,通过this.props.location.state获取即可

推荐使用,比较安全,获取传递参数都比较方便

第三种传参方式 组件间传参

何时使用?
当一个路由组件需要接收来自父组件传参的时候

改造route标签通过component属性激活组件的方式
正常情况下的route标签在路由中的使用方式


//简洁明了,但没办法接收来自父组件的传参
<Route path='/test' component={Test}></Route>

改造之后


<Link to='/test'>测试</Link>
<Route path='/test' render={(routeProps) => {
 //routeProps就是路由组件传递的参数
     return (
     //在原先路由组件参数的情况,扩展绑定父组件对子组件传递的参数
      <Test {...routeProps} name='dx' age={18} />
     )
 }}></Route> 



当点击link标签时,通过在对应的test子组件中,this.props获取来自父组件传递的参数和路由组件自带的参数
强烈推荐,传递参数略微有些麻烦,接收参数十分方便,并且仍然可以接收路由组件自带的参数,安全,不会被用户看见

第四种传参方式 withRouter 高阶组件给子组件绑定路由参数

withRouter 何时使用?

想要在某个子组件中获取路由的参数,必须得使用路由中的route标签的子组件才能被绑定上路由的参数。

为了解决不通过route标签绑定的子组件获取路由参数的问题,需要使用withRouter

一般用在返回首页,返回上一级等按钮上


import React from 'react';
import BackHome from './backhome';
export default class Test extends React.Component {
 render () {
  console.log(this.props)
  return (
   <div>
    这是测试的内容
//返回首页的按钮不是通过route标签渲染的,所以该子组件的this.props中没有路由参数
    <BackHome>返回首页</BackHome> 
   </div>
  )
 }
}


import React from 'react';
//导入withRoute
import {withRouter} from 'react-router-dom';
class BackHome extends React.Component {
 GoHome = () => {
  //必须在使用withRouter的情况下,该组件在this.props中才有路由参数和方法
  //否则,会报错
  this.props.history.push({
   pathname: '/home',
   state: {
    name: 'dx' //同样,可以通过state向home路由对应的组件传递参数
   }
  })
 }
 render () {
  return (
   <button onClick={this.goHome}>this.props.children</button>
  )
 }
}
//导出的时候,用withRouter标签将backHome组件以参数形式传出
export default withRouter(BackHome)

当你需要使用的时候,就很重要,所以还是比较推荐。

到此这篇关于浅谈react路由传参的几种方式的文章就介绍到这了,更多相关react路由传参内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈react路由传参的几种方式

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

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

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

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

下载Word文档
猜你喜欢
  • 浅谈react路由传参的几种方式
    第一种传参方式,动态路由传参 通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示传递的整个url <Link to='/...
    99+
    2022-11-11
  • React传递参数的几种方式
    目录父子组件之间传递参数路由传参 状态提升context引入redux父子组件之间传递参数 父组件往子组件传值,直接用this.props就可以实现 在父组件中,给需要传递...
    99+
    2022-11-12
  • React路由组件传参的三种方式(params、search、state)
    目录向路由组件传递params参数向路由组件传递search参数向路由组件传递state参数总结三种向路由组件传参的方式向路由组件传递params参数 当点击消息1这个导航链接时,展...
    99+
    2022-11-13
  • 基于React路由跳转的几种方式
    目录React路由跳转的几种方式1. params形式2. 使用state的形式React路由跳转传参问题使用Link传参url传参隐式传参React路由跳转的几种方式 注意: 这里...
    99+
    2022-11-13
  • 浅谈Mybatis之参数传递的几种姿势
    目录I. 环境配置1. 项目配置2. 数据库表II. 参数传递1. @Param注解2. 单参数3. 多参数3. Map传参4. POJO对象5. 简单参数 + Map参数6.小结I...
    99+
    2022-11-12
  • 浅谈一种Laravel路由文件划分方式
    最初,我想到了利用路由组方法可以接收文件,这就是 laravel 在 RouteServiceProvider 处拆分路由的方式。 <?php namespace ...
    99+
    2022-11-12
  • 详解Vue 路由组件传参的 8 种方式
    我们在开发单页面应用时,有时需要进入某个路由后基于参数从服务器获取数据,那么我们首先要获取路由传递过来的参数,从而完成服务器请求,所以,我们需要了解路由传参的几种方式,以下方式同 v...
    99+
    2022-11-11
  • Vue路由传参的三种方式实例详解
    目录Vue路由传参三种方式一、params传参二、路由属性配置传参:三、query传参区别特别注意总结Vue路由传参三种方式 params传参路由属性配置传参query传参 一、pa...
    99+
    2023-01-28
    vue路由的传参方式 vue路由传参的两种方式 vue参数传递方式
  • 浅谈JavaScript的几种继承实现方式
    目录当前需求: 实现 Student 继承自 Person构造函数Person构造函数Student希望满足的条件功能利用原形链实现方法的继承方式1: 子类原型指向父类原型方式2 子...
    99+
    2023-05-17
    JavaScrip 继承
  • 浅谈go中cgo的几种使用方式
    目录最简单的CGO程序源码方式调用C函数内部机制编译和链接参数编译参数:CFLAGS/CPPFLAGS/CXXFLAGS链接参数:LDFLAGS通过静态库的方式调用C函数通过动态库的...
    99+
    2022-11-13
  • Vue路由传参props解耦的三种方式小结
    目录路由组件传参布尔模式对象模式函数模式总结路由组件传参 在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性。 使...
    99+
    2022-12-08
    Vue路由传参 Vue props解耦 props解耦方式
  • 详解Vue路由传参的两种方式query和params
    Vue路由传参的两种方式query和params 一、router-link 1. 不带参数 <router-link :to="{name:'home'}"> <...
    99+
    2022-11-13
  • 浅谈Springboot2.0防止XSS攻击的几种方式
    目录防止XSS攻击,一般有两种做法:转义 做法的三种实现:转义方法一:注册自定义转换器转义方法二:BaseController转义方法三:Converter在平时做项目代码开发的时候...
    99+
    2022-11-13
    Springboot防止XSS攻击 Springboot防止XSS
  • react路由传值的方式有哪些
    这篇文章主要介绍“react路由传值的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react路由传值的方式有哪些”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • 浅谈前端JS沙箱实现的几种方式
    目录前言 iframe实现沙箱 diff方式实现沙箱 基于代理(Proxy)实现单实例沙箱 基于代理(Proxy)实现多实例沙箱 结束语 参考前言 在微前端领域当中,沙箱是很重要的...
    99+
    2022-11-12
  • uniapp路由传参的方式有哪些
    在uniapp中,路由传参的方式有以下几种: query传参:通过在url中添加查询参数,例如/pages/home/homep...
    99+
    2023-10-22
    uniapp
  • 浅谈SpringBoot资源初始化加载的几种方式
    目录一、问题二、资源初始化一、问题   在平时的业务模块开发过程中,难免会需要做一些全局的任务、缓存、线程等等的初始化工作,那么如何解决这个问题呢?方法有多种,但具体又要怎么选择呢?...
    99+
    2022-11-12
  • 分享Pytestfixture参数传递的几种方式
    目录1.背景2.fixture中参数传递的几种方式1)fixture中的函数返回2)与@pytest.mark.parametrize的结合3)fixture中的方法嵌套传递4)测试...
    99+
    2022-11-10
  • Vue中常见的几种传参方式小结
    目录前言父子组件之间传参兄弟组件之间传参provide/inject传参总结前言 Vue组件传参方也是面试最常考的内容,犹记得当初刚出来实习的时候,遇到一个需求,大概就是一个tabs...
    99+
    2023-05-19
    vue传参方式有哪些 vue传参方法 vue传参
  • Go中数组传参的几种方式小结
    初学Golang,数组传参问题就是把我整不会了,以前我们使用c语言进行数组传参时是这样传递的,直接传递数组的起始地址即可。 而在go中数组传参我们以以下两种方式进行传递,这里我直接...
    99+
    2023-03-08
    Go 数组传参
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作