这个问题想必很多人都会遇到过,这里我说一下怎么获取URL中的参数。

react 获取URL原理:

在 react 组件的 componentDidMount 方法中打印一下 this.props,在浏览器控制台中查看输出如下:

其中页面的 url 信息全都包含在 match 字段中,

以地址  localhost:3000/app/knowledgeManagement/modify/STY20171011124209535/3/1507701970070/0/?s=1&f=7  为例其中各个参数定义对应如下:localhost:3000/app/knowledgeManagement/modify/:studyNo/:stepId/:randomNum/:isDefault/?s=&f=

首先打印 this.props.match

可以看到 this.props.match 中包含的 url 信息还是非常丰富的,其中

history: 包含了组件可以使用的各种路由系统的方法,常用的有 push 和 replace,两者都是跳转页面,但是 replace 不会引起页面的刷新,仅仅是改变 url。

location: 相当于URL 的对象形式表示,通过 search 字段可以获取到 url 中的 query 信息。(这里 state 的含义与 HTML5 history.pushState API 中的 state 对象一样。每个 URL 都会对应一个 state 对象,你可以在对象里存储数据,但这个数据却不会出现在 URL 中。实际上,数据被存在了 sessionStorage 中)(参考: 深入理解 react-router 路由系统)

match: 包含了具体的 url 信息,在 params 字段中可以获取到各个路由参数的值。


通过以上分析,获取 url 中的指定参数就十分简单了,下面是几个例子:

// localhost:3000/app/knowledgeManagement/modify/STY20171011124209535/3/1507701970070/0/?s=1&f=7
// localhost:3000/app/knowledgeManagement/modify/:studyNo/:stepId/:randomNum/:isDefault/?s=1&f=7// 获取 studyNo
this.props.match.match.params.studyNo // STY20171011124209535// 获取 stepId
this.props.match.match.params.stepId // 3// 获取 success
const query = this.props.match.location.search // '?s=1&f=7'
const arr = query.split('&') // ['?s=', 'f=7']
const successCount = arr[0].substr(3) // '1'
const failedCount = arr[1].substr(2) // '7'

注意点:

如果这个值需要在页面中及时获得,这个时候就需要注意了,我们都知道react是有生命周期的,那么什么时候获取URL的值最合适呢?

  • 这个我推荐在componentDidMount 这个生命周期的时候去获取,因为这个时候页面已经挂在好了,完全可以拿到URL上面的值。

react获取URL中参数相关推荐

  1. vue取url路径传参_vue不通过路由直接获取url中参数的方法示例

    前言 众所周知vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接在url后面拼接?mid=100的方 ...

  2. jquery 乱码 传参_jquery获取URL中参数解决中文乱码问题的两种方法

    从A页面通过url传参到B页面时,解析url参数可以用下面两种方法: 方法一:正则分析法 function getQueryString(name) { var reg = new RegExp(&q ...

  3. JS中获取URL中参数的4种方法

    方法一:正则 function getQueryString(name) {var reg = new RegExp('(^|&)' + name + '=([^&]*)(&| ...

  4. js获取URL中参数

    URL中的参数一般位于URL的尾部,用"?"与url前面的内容隔开. 格式是 ?+参数名=值 ,如果有多个参数,在参数之间加上&进行区隔. 例: 对于URL:https:/ ...

  5. java获取url中参数_获取url参数(java / js)

    (1)js // 获取url参数 function getQueryString(url, name) { console.log("url = " + url) console. ...

  6. react获取url上面参数

    1.使用的是类组件(获取全部参数) this.props?.location?.query 2.使用函数组件 props?.loacation?.query

  7. JS获取URL中参数中文乱码问题

    转载:https://blog.csdn.net/sessionsong/article/details/51487887 通过搜索在网上找到了 下面这个方法,代码如下: function getQu ...

  8. URL传参小用法获取url中的参数

    写页面的时候发现的小用法,记录下来,关于url静态传参的问题. 首先列举下获取URL中参数的几种方法 方法一:正则法 这个正则是寻找&+url参数名字=值+&*/     这里参考网址 ...

  9. 如何获取URL中的参数

    获取URL中的参数 1. 使用JS函数获取URL参数 使用示例 2. Angular应用中,从URL中获取参数信息的方法 使用示例 ActivatedRoute属性 1. 使用JS函数获取URL参数 ...

最新文章

  1. 零基础学习python爬虫_教你零基础如何入门Python爬虫!
  2. C#实现web信息自动抓取
  3. mwc校准油门_编写下载服务器。 第五部分:油门下载速度
  4. 使用TensorFlow.js进行AI在网络摄像头中翻译手势和手语
  5. werkzeug.local
  6. HBase内置过滤器java api的总结
  7. 免费批量修改图片MD5软件 图片处理防和谐软件
  8. matlab 从 excel读取 日期_MATLAB一键记账它不香吗?
  9. 2000款商务通用PPT模板免费下载
  10. 《中英文在自然语言处理上的十大差异点》学习总结
  11. Halcon入门(3)——回形针目标提取
  12. [ABAP] PBOM历史版本函数展开 CSAP_MAT_BOM_READ
  13. 元宵佳节,戴铭老师亲自带你分析iOS行业动态!
  14. 大数据技术之Spark(三) SparkStreaming
  15. 百度阿里网易大疆等大小厂前端校招面筋
  16. 漫画:什么是ConcurrentHashMap?
  17. leetcode:2448. 使数组相等的最小开销【猜结论落在给定点 + 考虑初始值和变化量 + 三分法模板学习】
  18. 吉尔布雷斯的动作研究—《可以量化的管理学》
  19. ## 使用flex布局(多行,一行三个),换行后最后一行左右对齐问题
  20. gif在html里为何会自动停止,CSS或JS实现gif动态图片的停止与播放

热门文章

  1. 第十二周学习进度总结
  2. 目前可能最快的下载百度网盘文件的方法(aria2下载)
  3. AR与大数据 珠联璧合带来的无限想象空间
  4. win7远程桌面连接不上,解决办法
  5. iOS之UI--涂鸦画板实例 (有待更新)
  6. HIT 2060 Fibonacci Problem Again
  7. oracle中schema指的是什么?
  8. fgetc(),getc(),getchar()的用法
  9. 转载:使用 GNU Libtool 创建库
  10. ShopEx 手动使用分类做导航时,获取当前导航的焦点状态