当前位置: 首页 > news >正文

react路由传参,以及优缺点 带例子

1.params

<Route path='/path/:name' component={Path}/>
<link to="/path/2">xxx</Link>
this.props.history.push({pathname:"/path/" + name});

读取参数用:this.props.match.params.name

优势 : 刷新地址栏,参数依然存在
缺点:只能传字符串,并且,如果传的值太多的话,url会变得长而丑陋。

2.query

<Route path='/query' component={Query}/>
<Link to={{ path : ' /query' , query : { name : 'sunny' }}}/>
this.props.history.push({pathname:"/query",query: { name : 'sunny' }});

读取参数用: this.props.location.query.name
优势:传参优雅,传递参数可传对象;
缺点:刷新地址栏,参数丢失

3.state

<Route path='/sort ' component={Sort}/>
<Link to={{ path : ' /sort ' , state : { name : 'sunny' }}}/>
this.props.history.push({pathname:"/sort ",state : { name : 'sunny' }});

读取参数用: this.props.location.query.state

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

4.search

<Route path='/web/departManange ' component={DepartManange}/>
<link to="web/departManange?tenantId=12121212">xxx</Link>

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

读取参数用: this.props.location.search

优势 : 刷新地址栏,参数依然存在
缺点:只能传字符串,并且,如果传的值太多的话,url会变得长而丑陋。

下面是一个路由跳转的例子

传参页面

export default class Login extends Component {
 在这个点击的事件里去路由跳转,另一个页面去接收
  dj(id) {
    console.log(id)
    this.props.history.push({
      pathname: '/detail',
      state: id
    })
  }
  render() {
    return (
      <div>
        <h2>Login 登录页</h2>
        {
          this.state.list.map((mv) => (
          //在这个写点击事件
            <div key={mv.id} onClick={() => this.dj(mv.id)}>
              <img src={mv.img} style={{ width: '100px', height: '159px' }} className="img-responsive" alt="" />
              <p >{mv.tCn}</p>
            </div>
          ))
        }
      </div>
    )
  };
}

接收页面 this.props.location.state

componentDidMount() {
    fetch('https://url.api?locationId=290&movieId=' + this.props.location.state)
      .then(res => res.json())

相关文章:

  • MySQL · 特性分析 · innodb buffer pool相关特性
  • 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么? 分为4个步骤
  • VMware虚拟设备之虚拟磁盘配置与虚拟磁盘置备类型相关介绍
  • 优秀的技术Leader
  • BOM对象有哪些,列举window对象
  • redux实现数据存取的简单写法,简单的写了一下,相信你应该可以看得懂的
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 面向对象三大基本特性 三大特性是:封装,继承,多态
  • CentOS-5.6-x86_64 下搭建DNS服务器
  • 什么是值传递和引用传递
  • nodejs的调试(node-inspector)
  • Es6中我常用的新特性总结
  • es6箭头函数和普通函数区别
  • 类加载机制
  • 简述回流和重绘,简单的表达 以及v-if和v-show的区别
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 30天自制操作系统-2
  • eclipse(luna)创建web工程
  • express如何解决request entity too large问题
  • IOS评论框不贴底(ios12新bug)
  • js继承的实现方法
  • js算法-归并排序(merge_sort)
  • LeetCode29.两数相除 JavaScript
  • Linux CTF 逆向入门
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • TCP拥塞控制
  • vue-loader 源码解析系列之 selector
  • vue数据传递--我有特殊的实现技巧
  • Vultr 教程目录
  • 闭包--闭包作用之保存(一)
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 经典排序算法及其 Java 实现
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 漂亮刷新控件-iOS
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 推荐一个React的管理后台框架
  • 我的zsh配置, 2019最新方案
  • 一道面试题引发的“血案”
  • 在weex里面使用chart图表
  • 终端用户监控:真实用户监控还是模拟监控?
  • #Linux(make工具和makefile文件以及makefile语法)
  • (2)nginx 安装、启停
  • (4)(4.6) Triducer
  • (八十八)VFL语言初步 - 实现布局
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 表达式计算:Expression Evaluator
  • .net 托管代码与非托管代码