2022-03-25 学习记录--React-向路由组件传递参数(旧版本)

在这里插入图片描述

一、实现效果

点击菜单消息1,显示对应id为01的详情内容;
在这里插入图片描述
点击菜单消息2,显示对应id为02的详情内容;
在这里插入图片描述
点击菜单消息3,显示对应id为03的详情内容;
在这里插入图片描述

二、实现方式

在这里插入图片描述

方法1、向路由组件传递params参数

Detail组件传递参数idtitle

【注意:``模板字符串是js里的东西,使用这个时要在外层加个花括号{}

注意:图片可能有些是6.0版本的写法,所以以图片下面的代码为准哟
在这里插入图片描述

{/* 第一步、向路由组件传递params参数——``模板字符串是js里的东西,使用这个(js表达式)时要在外层加个花括号{} */}
<Link to={`/message/detail/${msgObj.id}/${msgObj.title}`}>{msgObj.title}</Link>

{/* 第二步、声明接收params参数 */}
<Route path="/message/detail/:id/:title" component={Detail} />

接收params参数

Detail组件里通过this.props.match.params接收到params参数
在这里插入图片描述

方法2、向路由组件传递search参数

注意:图片可能有些是6.0版本的写法,所以以图片下面的代码为准哟
在这里插入图片描述

{/* 第一步、向路由组件传递search参数——``模板字符串是js里的东西,使用这个(js表达式)时要在外层加个花括号{} */}
<Link to={`/message/detail/?id=${msgObj.id}&title=${msgObj.title}`}>{msgObj.title}</Link>

{/* 第二步、search参数无需声明接收,正常注册路由即可 */}
<Route path="/message/detail" component=<Detail} />

接收search参数

通过this.props.location获取到search,然后需要借助qs才能获取到参数哟~

qs是一个npm仓库所管理的包

  • qs.parse()将URL解析成对象的形式
  • qs.stringify()将对象序列化成URL的形式,以&进行拼接

在这里插入图片描述

方法3、向路由组件传递state参数

注意:图片可能有些是6.0版本的写法,所以以图片下面的代码为准哟
在这里插入图片描述

{/* 第一步、向路由组件传递state参数 */}
<Link to={{pathname:'/message/detail',state:{id:msgObj.id,title:msgObj.title}}}>{msgObj.title}</Link>

{/* 第二步、state参数无需声明接收,正常注册路由即可 */}
<Route path="/message/detail" component={Detail} />

接收state参数

Detail组件里通过this.props.location.state接收到state参数
在这里插入图片描述

总结

向路由组件传递参数
				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(qs)解析
				3.state参数
							路由链接(携带参数)<Link to={{pathname:'/demo/test',state:{name:'tom',age:18}}}>详情</Link>
							注册路由(无需声明,正常注册即可)<Route path="/demo/test" component={Test}/>
							接收参数:this.props.location.state
							备注:刷新也可以保留住参数

These are bilibili尚硅谷React学习视频的 学习笔记~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小呀小萝卜儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值