- 1
一. props.params
官方例子使用 React router 定义路由时,我们可以给<Route>
指定一个 path,然后指定通配符可以携带参数到指定的 path:
首先定义路由到 UserPage 页面:
上面指定参数一个参数 name
使用:
1.Link 组件实现跳转:
2.history 跳转:
当页面跳转到 UserPage 页面之后,取出传过来的值:
上面的方法可以传递一个或多个值,但是每个值的类型都是字符串,没法传递一个对象,如果传递的话可以将 json 对象转换为字符串,然后传递过去,传递过去之后再将 json 字符串转换为对象将数据取出来
如:定义路由:
使用:
获取数据:
通过这种方式跳转到 UserPage 页面时只能通过传递字符串来传递参数,那么是否有其他方法来优雅地直接传递对象而不仅仅是字符串呢?
二. query
query 方式使用很简单,类似于表单中的 get 方法,传递参数为明文:
首先定义路由:
query 方式可以传递任意类型的值,但是页面的 URL 也是由 query 的值拼接的,URL 很长,那么有没有办法类似于表单 post 方式传递数据使得传递的数据不以明文传输呢?
三. state
state 方式类似于 post 方式,使用方式和 query 类似,
首先定义路由:
四. onclick方法:
// 向详情页传递要传递的值 clickHandler(value) { browserHistory.push({ pathname: '/detail/' + value,query: { billName: value.brandNm,billTittle: value.ticketNm,billImg: value.billPicPath,billId: value.billId },}) console.log(value); } }
<p>billName:{this.props.location.query.billName}</p>
<p>billTittle:{this.props.location.query.billTittle}</p>
<p>billId:{this.props.location.query.billId}</p>
<p>billImg:{this.props.location.query.billImg}</p>
可以在实现后对比地址栏的 URL 来观察三种传值方式 URL 的区别
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。