前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React路由传递params、search、state参数的相关处理

React路由传递params、search、state参数的相关处理

作者头像
peng_tianyu
发布2022-12-15 17:52:09
1.1K0
发布2022-12-15 17:52:09
举报
文章被收录于专栏:前端开发随记

路由传递参数基本都分为三个步骤:传递参数、声明接收参数、获取参数

传递params参数

代码语言:javascript
复制
<!-- 传递参数 -->
<Link to={`/路径/${value}/${value}`}

<!-- 声明接收参数 -->
<Route path="/路径/:key/:key" />
代码语言:javascript
复制
//获取参数
console.log(this.props.match.params)

传递state参数

代码语言:javascript
复制
<!-- 传递参数 -->
<Link to={{pathname: '/路径', state: {key: value}}} />

<!-- 声明接收 -->
<Route path="/路径" />
代码语言:javascript
复制
//获取参数
congole.log(this.props.location.state)

传递search参数

代码语言:javascript
复制
<!-- 传递参数 -->
<Link to={`/路径/?key=${变量}`} />

<!-- 声明接收参数 -->
<Route path="/路径" />
代码语言:javascript
复制
//获取参数
console.log(this.props.location.search) //?key=value&key=value

import qs from 'querystring'

const obj = qs.parse(this.props.location.search.slice(1))

console.log(obj) // {key: value, key: value}
代码语言:javascript
复制
在路径后使用?key=value的形式传递参数,传递多个参数使用&符号连接

使用search传参时不需要声明接收参数

获取参数时search参数没有像params一样是一个对象,可使用第三方库querystring进行处理

如果是使用react脚手架搭建的项目可直接引入,否则需要使用命令安装

安装第三方库命令 npm i querystring

Tips:使用slice方法将search参数中的问号去掉

querystring

代码语言:javascript
复制
let str = 'name=swt&age=20'

console.log(qs.parse(str)) //{name: "swt", age: "20"}

let obj = {name: "swt", age: "20"}

console.log(qs.stringify(obj)) //name=swt&age=20
代码语言:javascript
复制
qs.stringify()方法将对象转换成urlencode编码格式
qs.parse()方法将urlencode编码格式转换成对象
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 路由传递参数基本都分为三个步骤:传递参数、声明接收参数、获取参数
    • 传递params参数
      • 传递state参数
        • 传递search参数
          • querystring
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档