react 路由传参
今天,我们要讨论的是react router中Link传值的三种表现形式。分别为通过通配符传参、query传参和state传参。
ps:进入正题前,先说明一下,以下的所有内容都是在react-router V4的版本下。
1.params
Route定义方式:
<Route path='/path/:name' component={Path}/>
Link组件:
HTML方式
<Link to="/path/通过通配符传参">通配符</Link>
JS方式
this.props.history.push({
pathname:'/shopCarDetail',
params:{
name:'jack'
}
});
参数获取:
this.props.location.params.name // jack
2.query
Route定义方式:
<Route path='/query' component={Query}/>
Link组件:
HTML方式
var query = {
pathname: '/query',
query: {day: 'Friday'}
}
<Link to={query}>query</Link>
JS方式
this.props.history.push({
pathname:'/query',
query:{
day:'Friday'
}
});
参数获取:
this.props.location.query.day // Friday
优点:优雅,可传对象
缺点:刷新页面,参数丢失
3.state
Route定义方式:
<Route path='/state' component={State}/>
Link组件:
HTML方式
var state = {
pathname: '/state',
state: {name: 'sunny'}
}
<Link to={state}>state</Link>
JS方式
this.props.history.push({
pathname:'/state',
state:{
name:'sunny'
}
});
参数获取:
this.props.location.state.name // sunny
优点:优雅,可传对象
缺点:刷新页面,参数丢失
react 路由传参的更多相关文章
- react --- 路由传参的几种方式
1.params 优势 : 刷新地址栏,参数依然存在缺点:只能传字符串,并且,如果传的值太多的话,url会变得长而丑陋. 2.query 优势:传参优雅,传递参数可传对象:缺点:刷新地址栏,参数丢失 ...
- React路由传参的三种方式
方式 一: 通过params 1.路由表中 <Route path=' /sort/:id ' component= ...
- react路由传参
方法1 <刷新页面参数会消失> <Link className="item" to={{pathname:'/order',params:{index :&quo ...
- react router @4 和 vue路由 详解(五)react怎么通过路由传参
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 7.react怎么通过路由传参? a.通配符传参(刷新页面数据不丢失) //在定义路由的 ...
- react router @4 和 vue路由 详解(六)vue怎么通过路由传参?
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 8.vue怎么通过路由传参? a.通配符传参数 //在定义路由的时候 { path: ' ...
- 8.MVC框架开发(URL路由配置和URL路由传参空值处理)
1.ASP.NET和MVC的路由请求处理 1)ASP.NET的处理 请求---------响应请求(HttpModule)--------处理请求(HttpHandler)--------把请求的资源 ...
- vue链接传参与路由传参
1.链接传参: 例如:链接是:http://localhost:3333/#/index?id=001 我们要获取参数:console.log(this.$route.query.id):即可 2.路 ...
- vue路由传参的三种方式区别(params,query)
最近在做一个项目涉及到列表到详情页的参数的传递,网上搜索一下路由传参,结合自己的写法找到一种适合自己的,不过也对三种写法都有了了解,在此记录一下 <ul class="table_in ...
- vue动态路由配置,vue路由传参
动态路由: 当我们很多个页面或者组件都要被很多次重复利用的时候,我们的路由都指向同一个组件,这时候从不同组件进入一个"共用"的组件,并且还要传参数,渲染不同的数据 这就要用到动态路 ...
随机推荐
- Leetcode 476.数字的补数
数字的补数 给定一个正整数,输出它的补数.补数是对该数的二进制表示取反. 注意: 给定的整数保证在32位带符号整数的范围内. 你可以假定二进制数不包含前导零位. 示例 1: 输入: 5 输出: 2 解 ...
- mysql处理添加外键时 error 150 问题
当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的.像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上, ...
- linux tomcat安装(二)
安装步骤: 1.下载 Tomcat 下载 apache-tomcat-7.0.69.tar.gz(官方网址:http://tomcat.apache.org/) 2.解压 Tomcat 解压 apac ...
- 我要好offer之 系统基础大总结
1. APUE Unix环境高级编程 (1) Unix基础知识: 内核->系统调用->shell和库函数->应用软件 (2) 文件I/O:read函数返回值.进程的文件描述符表.文件 ...
- 让旧浏览器支持HTML5新增标签
首先我们使用JS进行标签创建,为HTML文件创建我们需要的这几个HTML5标签. 接下来,我们需要使用CSS进行这几个HTML5标签的样式控制,这是因为,通过这种方法创建的新标签,默认是行内元素. ...
- tomcat 项目迁移到jboss5.1
1.拷贝tomcat\bin目录下两个jar到项目lib 目的:解决jboss java.lang.NoClassDefFoundError: org/apache/juli/logging/LogF ...
- C#知识点总结:Monitor和Lock以及区别
Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取 ...
- django中表变更后migrate无效的问题
问题描述: 已有的model,修改之后,想重新建模,于是将migrations文件夹中除__init__.py之外其他文件都删掉,再次执行以下步骤python manage.py makemigrat ...
- Python内置函数和匿名函数
内容回顾: 1.列表推导式 [变量(加工后的变量) for 变量 in iterable] 循环模式 [变量(加工后的变量) for 变量 in iterable if 条件] 筛选模式 生成器表达式 ...
- (12)ubunto 快捷键
-----------------------------------------------------vi快捷键------------------------------------ 指令模式: ...