美文网首页
React中向路由组件传递参数

React中向路由组件传递参数

作者: 西北有高楼lee | 来源:发表于2021-05-30 23:27 被阅读0次

1. params参数

路由链接(传递参数):

<Link to={`/home/message/detail/${msgObj.id}/${msgObj.title}`}>{msgObj.title}</Link>

注册路由(声明接收):

<Route path="/home/message/detail/:id/:title" component={Detail}></Route>

接收参数:
const {id,title}=this.props.match.params;

params参数

使用params传递参数地址栏的链接时这样的;
http://localhost:3000/home/message/detail/01/消息1

2. search参数

路由链接(传递参数):

<Link to={`/home/message/detail/?id=${msgObj.id}&title=${msgObj.title}`}>{msgObj.title}</Link>

注册路由(无需声明,正常注册即可):

<Route path="/home/message/detail" component={Detail}></Route>

接收参数:

const {search}=this.props.location;
console.log(search);//?id=01&title=消息1
const {id,title}=qs.parse(search.slice(1));//去除问号
search参数

注意:获取到的search是urlencoded编码的字符串,需要借助querystring解析
react库自带,可直接引入:import qs from "querystring";

search传递参数在地址栏的链接是这样的:
http://localhost:3000/home/message/detail/?id=01&title=消息1

3. state参数

路由链接(传递参数):

<Link to={{pathname:"/home/message/detail",state:{id:msgObj.id,title:msgObj.title}}}>{msgObj.title}</Link>

注册路由(无需声明,正常注册即可):

<Route path="/home/message/detail" component={Detail}></Route>

接收参数:
const {id,title}=this.props.location.state || {};

state参数

注意:
由于传递的参数没有在地址栏体现,所以刷新会出错,需要在接收参数时进行空对象处理。
state传递参数不会在地址栏体现,地址栏是这样的:
http://localhost:3000/home/message/detail

总结:

三种传递参数的方式中,params用的最多,其次是search,最后是state。
当需要传递参数却有不想展示时会使用state方式传递。

相关文章

  • React中向路由组件传递参数

    1. params参数 路由链接(传递参数): 注册路由(声明接收): 接收参数:const {id,title}...

  • 组件的pros

    前面文章提到一个React工程中包含很多Component,可以通过向组件中传递参数,及props,使得组件更灵活...

  • React - 函数式组件化 & props参数传递

    React函数式组件化 & props参数传递 函数式组件 定义变量 & 使用组件 通过props传递参数 展开运...

  • 19.ReactNative组件间的通信

    父组件向子组件通信: 父组件向子组件传值 通过props传递 在父组件中name='我是父组件向子组件传递的参数'...

  • ReactNative组件间的通信

    父组件向子组件通信 父组件向子组件传值 通过props传递 在父组件中name='我是父组件向子组件传递的参数' ...

  • react-router-dom部分笔记

    1,向路由组建传递参数 (1)params 参数 路由链接(携带参数): 注册路由(声明接收) 接收参数this....

  • 2019-12-05 vue 参数的传递 ---路由名称的获取以

    本文的参数传递,1、是获取路由的名称和app.vue使用路由的时候,向对应名称的路由页面组件内传值。 2、url ...

  • react(react+dva+antd)项目总结

    react part 1.props属性 props是一个从外部传进组件的参数,主要作为就是从父组件向子组件传递数...

  • react组件

    父子组件传值 父→子 父组件通过属性的形式向子组件传递参数子组件通过props接受父组件传递过来的参数注:父组件向...

  • 父子组件

    父组件通过属性的形式向子组件传递参数子组件通过props接受父组件从传递过来的参数

网友评论

      本文标题:React中向路由组件传递参数

      本文链接:https://www.haomeiwen.com/subject/rnfvsltx.html