react怎么路由传参? - 网站

react怎么路由传参?

分类:React入门教程_React框架基础教程 · 发布时间:2020-11-22 19:55 · 阅读:839

react路由传参(4种方式)

1、通过params传参(刷新页面后参数不消失,参数会在地址栏显示)

路由页面:

<Route path='/demo/:id' component={Demo}></Route>  //注意要配置 /:id

路由跳转并传递参数:

  • 链接方式:

<Link to={'/demo/'+'6'}>XX</Link>
//或:
<Link to={{pathname:'/demo/'+'6'}}>XX</Link>
  • js方式:

this.props.history.push('/demo/'+'6')  
//或:
this.props.history.push({pathname:'/demo/'+'6'})

获取参数:

this.props.match.params.id    //注意这里是match而非history

params传参(多个动态参数)

state={
    id:88,
    name:'Jack',
}

路由页面:

<Route path='/demo/:id/:name' component={Demo}></Route>

路由跳转并传递参数:

  • 链接方式:

<Link to={{pathname:`/demo/${this.state.id}/${this.state.name}`}}>XX</Link>
  • js方式:

this.props.history.push({pathname:`/demo/${this.state.id}/${this.state.name}`})

获取参数:

this.props.match.params     //结果 {id: "88", name: "Jack"}

2、通过query传参(刷新页面后参数消失)

路由页面:

<Route path='/demo' component={Demo}></Route>  //无需配置

路由跳转并传递参数:

  • 链接方式:

<Link to={{pathname:'/demo',query:{id:22,name:'dahuang'}}}>XX</Link>
  • js方式:

this.props.history.push({pathname:'/demo',query:{id:22,name:'dahuang'}})

获取参数:

this.props.location.query.name

优势:传参优雅,传递参数可传对象;
缺点:刷新地址栏,参数丢失

3、通过state传参( 刷新页面后参数不消失,state传的参数是加密的,比query传参好用)

路由页面:

<Route path='/demo' component={Demo}></Route>  //无需配置

路由跳转并传递参数:

  • 链接方式:

<Link to={{pathname:'/demo',state:{id:12,name:'dahuang'}}}>XX</Link>
  • js方式:

this.props.history.push({pathname:'/demo',state:{id:12,name:'dahuang'}})

获取参数:

this.props.location.state.name

优缺点同query

4、通过search

路由页面:

<Route path='/web/departManange ' component={DepartManange}/>

路由跳转并传递参数:

  • 链接方式:

<link to="web/departManange?tenantId=12121212">xxx</Link>
  • js方式:

this.props.history.push({pathname:"/web/departManange?tenantId" + row.tenantId});

读取参数用:

this.props.location.search

优缺点同params

标签:
react 路由传参

相关文章

react中怎么使用sass?

方法:1、使用npm工具安装sass-loader和node-sass依赖;2、配置webpack.config.js文件;3、在需要的组件中引入scss,然后添加scss代码即可。

react怎么判断checkbox是否被选中

react判断checkbox是否被选中的方法:可以通过【if ($(&quot;#checkbox-id&quot;).get(0).checked) {}】方法来进行判断。还可以通过原生js方法来进行判断,如【ele.checked】。

react子组件如何向父组件传值?

在react中,首先通过父组件给子组件传递一个函数,然后子组件通过参数传到父组件,通过props来传递函数的引用,并通过回调的方式实现;其实就是子组件调用父组件的方法,把值以形参的方式传出来。

react组件什么时候会重新渲染?

每当组件状态改变时,React就会调用render函数进行重新渲染。更改状态意味着当调用setState函数时,React触发更新;这不仅意味着将调用组件的render函数,而且还意味着重新渲染其所有后续子组件,无论其prop是否已更改。

react组件生命周期有几个阶段?

React组件生命周期有三个阶段:加载、更新和卸载。加载阶段表示一个组件实例被创建并被插入到DOM中;更新阶段表示由状态或属性的改变导致组件的重新渲染;卸载阶段表示组件从DOM中移除。

返回分类 返回首页