# React Router页面传参的几种方式

# 一、地址栏传参

这种方式是最原始的传参

hashHistory.push('/user?name=jack')
1

然后可以通过

location.hash // 自己对字符串进行处理
1

# 二、match

在路由中指定参数

<Route path="/user/:name" component={User} />
1

路由跳转

hashHistory.push('/user/jack')
1

在User组件中获取参数

this.props.match.params.name
1

# 三、push传参

这种传参分为两种路由,分别是:HashRouter、BrowserRouter,两者都可以通过push传参

history.push({pathname: '/user', query: {}})
1

在HashRouter和BrowserRouter中,query或state或其他自定义的参数,都可以通过

this.props.location
1

去获取,而两者的区别是HashRouter存放的东西只要刷新页面就没了,而BrowserRouter可以存放在state里,刷新之后不会消失