日常业务中,路由跳转的同时传递参数是比较常见的,为此来总结一下 react 的跳转方式
1、params 传参
路由表配置:参数地址栏显示
路由页面:
<Route path="/demo/:id" component="{Demo}"></Route> //配置 /:id
路由跳转并传递参数:
链接方式:
<Link to={'/demo/' + '2'}>XX</Link>
js 方式:
this.props.history.push("/demo/" + "2");
获取参数:
this.props.match.params.id;
2、query 传参
query 方法:参数地址栏不显示,刷新地址栏,参数丢失
路由页面:
<Route path="/demo" component="{Demo}"></Route> //无需配置
路由跳转并传递参数:
链接方式:
<Link to={{path:'/demo',query:{name:'dahuang'}}}>XX</Link>
js 方式:
this.props.history.push({ pathname: "/demo", query: { name: "dahuang" } });
获取参数:
this.props.location.query.name;
3、state 传参( 同 query 差不多,只是属性不一样,而且 state 传的参数是加密的)
state 方法:参数地址栏不显示,刷新地址栏,参数不丢失
路由页面:
<Route path="/demo" component="{Demo}"></Route> //无需配置
路由跳转并传递参数:
链接方式:
<Link to={{path:'/demo',state:{name:'dahuang'}}}>XX</Link>
js 方式:
this.props.history.push({ pathname: "/demo", state: { name: "dahuang" } });
获取参数:
this.props.location.state.name;