react的路由以及传值方法

Posted wulicute-ts

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react的路由以及传值方法相关的知识,希望对你有一定的参考价值。

1.下载路由

npm i router-react-dom --S

2.引入

import {Link,Route} from ‘react-router-dom‘

3.使用Link标签

 <Link to=‘/‘>Home</Link>

4.路由展示

exact 精准匹配路由

component={Home} 指定js文件
path={"/"} url路由地址
<Route path={"/"} exact component={Home}></Route>

传值

1.params的路由传值

配置路由

const id = 123;

配置直接在路由拼接变量id

<Link to={‘/about/‘+id+‘/‘+name}>About</Link>

在展示区域添加/:id

<Route path={"/about/:id"} component={about}></Route>

在展示的js里使用

this.props.match.params.id

接收

params特点

1.需要路由配置

2.刷新网页值还存在

3.如果传参数过多,url网址太长

 

2.query传值不需要配置路由

在路由上添加

pathname:‘/mine‘路由地址
query:obj对象形式传值
<Link to={{pathname:‘/mine‘,query:obj}}>Mine</Link>

 在子展示页面使用

this.props.location.query

接收

this.props.location.query.id

query的特点

1.不需要配置路由

2.刷新网页值被销毁

3.可以传对象

          网页销毁后可以,存入

         localstroge.setItme()或者sessionstorage.setItme()进行存储,

           刷新可以从localstroge或者sessionstorage中获取

3.state方式传值

state传值和query方式基本一样把其中的所有的query全部换成state就可以

在路由上添加

pathname:‘/mine‘路由地址
state:obj对象形式传值
<Link to={{pathname:‘/mine‘,state:obj}}>Mine</Link>

 在子展示页面使用

this.props.location.state

接收

this.props.location.state.id

 

params的特点

1.不需要配置路由

2.刷新网页值不会被销毁

3.可以传对象

    刷新不会网页值不会被销毁,

然而重新输入当前网址,网页的值会被销毁

query和state不会再url上显示,类似于post

params会在url上显示,类似于get

 

以上是关于react的路由以及传值方法的主要内容,如果未能解决你的问题,请参考以下文章

react传值,路由

十 React路由(react-router4.x): 动态路由get传值React中使用url模块

node-koa-路由传值

react之传递数据的几种方式props传值路由传值状态提升reduxcontext

React传值

React动态路由和get传值