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

优点:优雅,可传对象

缺点:刷新页面,参数丢失

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值