概述

不传递数据叫什么单页面应用,渲染模块还需要http请求算什么单页面应用。

本文总结了react-router4中使用BrowserRouter时传递数据的两种方法,供以后开发参考,相信对其他人也有用。

使用Link

Link是react-router4中很常见的一个类,很多人在页面跳转的时候都会用到它。在用Link的时候传递数据的方法如下:

import { Link } from 'react-router-dom';

//不传递数据
<Link to={模块路径}>{内容}</Link> //传递数据,在目标模块用this.props.location.state调用数据。
<Link to={{
pathname: {模块路径},
state: {数据}
}}>{内容}</Link>

使用history.push

history是H5中引入的,以前人们都用hash。

react-router4中有好几种方法使用history.push。下面我介绍使用BrowserRouter时使用的方法。

import { withRouter } from 'react-router-dom';

//不传递数据
this.props.history.push({目标模块路径}); //传递数据,在目标模块用this.props.location.state调用数据。
this.props.history.push({
pathname:{目标模块路径},
state:{数据}
}) export default withRouter(自身模块名)

区别

点击的时候跳转并传递数据:既可用Link方法,也可以用history.push方法(需要结合Onclick方法,在点击事件的回调函数里面调用history.push)。

js控制跳转并传递数据:只能用history.push方法。(直接在js中使用history.push)

另外说下,在模块中获取路由的/:id中的id:在this.props.match.params.id中获取。(其中id可换为其它参数。)

最新文章

  1. C# 线程调用主线程中的控件
  2. 2018. The Debut Album
  3. 洛谷 P1111 修复公路 Label:并查集
  4. overlay-scrollbar-js
  5. poj 3252 组合数
  6. 【转】XCode环境变量及路径设置 -- 待学习
  7. Ajax日记
  8. Shell终端收听音乐--网易云音乐命令行版
  9. bzoj1449————2016——3——14
  10. 201521123005 《Java程序设计》 第十四周学习总结
  11. Java点滴之Java概述
  12. 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)
  13. SSH密钥对登录的原理和实践
  14. docker中mysql数据库的数据导入和导出
  15. kubernetes promethues预警、报警
  16. 安装Eclipse时遇到”java was started but returned exit code = 13“如何解决?
  17. 【Java】 剑指offer(38) 字符串的排列
  18. 天使玩偶:CDQ分治
  19. Java 语言多态性
  20. 【Nodejs】外研社一年级起三年级下MP3下载爬虫1.00

热门文章

  1. cxGrid类似pagecontrol的效果
  2. Linux命令:pwd
  3. SpringMVC 重定向和请求转发(转载)
  4. Cocos2dx Android工程的启动过程
  5. SSM框架整合过程总结
  6. 384. Shuffle an Array数组洗牌
  7. linux下的音量控制器alsamixer 桌面v7
  8. 通过DOS界面查看电脑上端口使用情况
  9. wget(转)
  10. ORM初识和数据库操作