8、Link 标签 to 属性为对象时(路由信息传值)

DEMO地址

参考 6.routeInfo.js

在组件里,每个组件的路由数据,都是各自独立的。

在之前分析中,已知:

  1. match 属性的值,存储的是该 Route 标签的路由;
  2. location 属性的值,其中 url 和 path 不同 Route 组件中,值是相同的;

但【2】并不准确,准确的说,自带的 hash , search , pathname 这三个属性的值,是相同的;

假如你在里面添加了其他数据,那么结果就有所不同了。

例如 Link 标签,他有一个属性 to,可以用于路径跳转。

比较常见的是以下这种写法:

<Link to={`${props.match.url}/`}>子路由</Link>

但是,to 的值,也可以用对象,例如这样:

<Link to={{pathname: `${this.props.match.url}/1`,myState: '这是我自定义的变量'
}}>示例1</Link>

当路由信息匹配时(参照DEMO):

1、父组件的路由信息为:

{"match": {"path": "/RouteInfo","url": "/RouteInfo","isExact": false,"params": {}},"location": {"pathname": "/RouteInfo/1","search": "","hash": ""},"history": {"length": 9,"action": "POP","location": {"pathname": "/RouteInfo/1","search": "","hash": ""}}
}

2、被传值的子组件的路由信息:

{"match": {"path": "/RouteInfo/1","url": "/RouteInfo/1","isExact": true,"params": {}},"location": {"pathname": "/RouteInfo/1","myState": "这是我自定义的变量","search": "","hash": ""},"history": {"length": 24,"action": "PUSH","location": {"pathname": "/RouteInfo/1","myState": "这是我自定义的变量","search": "","hash": ""}}
}

可以看到,被传值的子组件的路由信息,location 会多了一个属性。

但是请注意,以下几种情况会导致失去这些信息:

  1. 刷新页面;
  2. 访问更深一层的子组件(因为信息被更新了);
  3. 刷新后,访问相同的 url。举例来说,你访问了该 url,传值了也收到了,然后刷新页面,再点击该 url,是没有的。原因是相同 url 跳转;

React-router(8)Link 标签 to 属性为对象时(路由信息传值)相关推荐

  1. [html] link标签的属性media有哪些值?都有什么作用?

    [html] link标签的属性media有哪些值?都有什么作用? 根据w3c的介绍,media属性表示link的链接文档会应用于何种媒介(设备)上.用于为不同的媒介类型规定不同的样式.常用的值为sc ...

  2. QTP的那些事---通过html标签的属性获取对象(类似onclick的属性)

    看到这个问题,有的人可能觉得就是通过DOM获取呗.我承认确实是通过DOM获取,唯一不同的是我通过的是html中标签的属性获取的. 代码如下: On error resume next btv=&quo ...

  3. 关于proxy模式下,@Transactional标签在创建代理对象时的应用

    @Transactional标签用于Spring中的事务标记.  先简单说下几个概念:  1)Spring的AOP是应用于Spring管理的bean上并基于代理实现的,代理的方法有java动态代理和C ...

  4. React Router 学习

    本次使用react-router 版本为 5.0.1 本教程前提是你的应用程序是一个web应用程序,使用'react-router-dom'包来实现页面的路由 在React router中有三种类型的 ...

  5. react router v4 简介

    最近使用react router 遇到一个问题:当对某个路由添加参数的时候/list/:app 这列路由,点击这个路由以后再点击其他路由,location地址就追加到后面,问不是replace. /l ...

  6. react更改路由入参_JavaScript基础教程 react router路由传参

    本篇教程介绍了JavaScript基础教程 react router路由传参,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入. < 今天,我们要讨论的是react ...

  7. html+link作用,html link标签有什么作用?html link标签的定义及属性介绍

    html link标签有什么作用?html link标签中定义及属性介绍,下面开始本章的内容,主要给大家说的是html link标签的定义和作用,还有HTML link标签的属性介绍及属性作用 htm ...

  8. link标签 a标签总结

    参考https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/link https://www.runoob.com/tags/tag-a.h ...

  9. hitchhiker部署_Hitchhiker的React Router v4指南:20分钟内完成Grok React Router

    hitchhiker部署 Hi fellow React Hitchhiker! Want a ride into React Router? Jump in. Let's go! 大家好,React ...

最新文章

  1. windows下php配置redis
  2. [原创]SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问...
  3. 文巾解题 704. 二分查找
  4. 在线MSN代码(如同QQ在线咨询那种的)
  5. Ubuntu 10.04屏幕录像软件Xvidcap安装及详细配置
  6. python 多层for循环转递归/迭代
  7. centos编译安装python_CentOS编译安装Python3
  8. 淘宝双12惊喜——“寻”千兆,万兆光模块等你来
  9. mysql5.0 执行定时计划
  10. docker harbor 域名_docker 安装Harbor
  11. 【笔试/面试】—— 数学找规律题
  12. 《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程
  13. Leading and Trailing LightOJ - 1282
  14. 2018.1.30-31 开始racket,避免mutation,lazy evaluation
  15. 工作中线程池使用不当的问题记录(get是阻塞式的)
  16. 红米6 Pro开启ROOT权限的教程
  17. 两个一一对应的txt文本去重
  18. SQL语句练习-入门篇
  19. B站网页端下载视频,直接浏览器下载或者Java实现下载
  20. C. Qualification Rounds(状压思维)

热门文章

  1. intellij HTTP状态 404 - 未找到_了解你的业务状态!使用 Nagios 打造专业的业务状态监控...
  2. DNF60版本阿里云服务器+本地客服端教程①服务端搭建
  3. Bootstrap学习笔记——菜单、按钮及导航
  4. 2015移动安全病毒年报
  5. Struts2 S2-016/S2-017 命令执行带回显、看web路径、getshell e...
  6. 一文读懂运放共模抑制比(下)
  7. 智慧屏鸿蒙系统的优势,搭载鸿蒙系统的华为智慧屏S Pro有何优势
  8. JetBrains系列pycharm等设置主题皮肤
  9. Ubuntu16.04(Xenial Xerus 好客的非洲地松鼠)更换pip源
  10. 线性表练习扑克牌游戏(炸金花)