react-路由组件传递参数的三种方式

本文详细介绍了React中路由组件传递参数的三种方式:params传参、search传参和state传参。params传参通过路由路径传递,search传参通过URL查询字符串,而state传参则是在Link组件的state属性中传递,即使刷新页面也能保留参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整理了一下路由组件传递参数的三种方式

1.params传参
  • 路由链接(携带参数):<Link to='/demo/test/tom/18'}>详情</Link>
  • 注册路由(声明接收):<Route path="/demo/test/:name/:age" component={Test}/>
  • 接收参数:this.props.match.params
2.search传参
  • 路由链接(携带参数):<Link to='/demo/test?name=tom&age=18'}>详情</Link>
  • 注册路由(无需声明,正常注册即可):<Route path="/demo/test" component={Test}/>
  • 接收参数:this.props.location.search
  • 备注:获取到的search是urlencoded编码字符串,需要借助querystring解析

接收参数页面的this.props的返回值如下图所示中的search
在这里插入图片描述
我们获取id 和title的值 需要借助node.js中自带的 querystring
import qs from 'querystring'
使用方法

  const { search } = this.props.location
  console.log(qs.parse(search))

打印出来的结果如下
在这里插入图片描述
所以需要去掉id前面的?
const {id,title} = qs.parse(search.slice(1))
在这里插入图片描述

3.state传参
  • 路由链接(携带参数):<Link to={{pathname:’/demo/test’,state:{name:‘tom’,age:18}}}>详情
  • 注册路由(无需声明,正常注册即可):
  • 接收参数:this.props.location.state
  • 备注:刷新也可以保留住参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值