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

react 路由的实现过程,听说现在用react的比较多

react–路由

下载(网页版) yarn add react-router-dom
官网 :https://reacttraining.com/react-router/
2 路由的模式mode :BrowserRouter–历史记录模式 HashRouter—hash模式

3 Router 入口文件index.js 文件 App 需要加r 其他的不加r

<Router>
	<App />
</Router>
<Route  path="/xxx" component={组件}  /> (exact)

react路由切换的组件有三个重要的属性

**1 location ---pathname search  state(undefined) --要想获取到
2 match-- params-- this.props.match.params.变量  (取路由参数) params默认值是一个空对象
3 history--push  go  replace  listen编程式导航的方法

<Route path=“路径” render={()=>{return <组件{…props}>}}>**

4 **Link 没有选择后的样式 ,NavLink有样式

<Link to="路径">xxx</Link>  
<NavLink to="路径">xx</NavLink> 默认的类名 active 也可以改变 activeClassName
		activeClassName=“selected” 可以更改NavLink选中后的类名
Switch 是渲染的匹配的第一个**

5 Redirect 重定向

 <Redirect  from='/路径1'  to="/路径2" exact />

6 404页面

<Route component={404组件}>

7

<Route path='/xx' render={(props)=>{
		return <组件 {...props} />  意思是: 根据条件渲染不同的组件,可以做权限路由的效果
}}>

8 权限

<AuthRoute>

9 withRouter 可以让不是路由切换的组件也拥有路由的三个属性
是一个高阶组件HOC–属性代理 和反向继承

10 监控路由的组件变化

 this.props.history.listen((location)=>{监听location.pathname})

11 向路由切换 的组件传多个值

	<Link to={{pathname:"路径",state:{key:value,....}}}
	this.props.location.state  // (state默认是undefined)
	编程式导航传递多个值 this.props.history.push(path,state)

12 兄弟组件传值 pubsub-js

	yarn add pubsub-js
	PubSub.subscribe("事件名",(evtName,data)=>{ })
	PubSub.publish(“事件名”,数据)

13 受控组件 和非受控组件

onChange事件    value受到onChange 的控制 
受控组件可以添加id来进行区分相同的onChange事件,e.target.id

相关文章:

  • MyBatis Review——开发Dao的方法
  • react实现路由跳转传参的方式 三种
  • RPC 的概念模型与实现解析
  • react路由传参,以及优缺点 带例子
  • MySQL · 特性分析 · innodb buffer pool相关特性
  • 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么? 分为4个步骤
  • VMware虚拟设备之虚拟磁盘配置与虚拟磁盘置备类型相关介绍
  • 优秀的技术Leader
  • BOM对象有哪些,列举window对象
  • redux实现数据存取的简单写法,简单的写了一下,相信你应该可以看得懂的
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 面向对象三大基本特性 三大特性是:封装,继承,多态
  • CentOS-5.6-x86_64 下搭建DNS服务器
  • 什么是值传递和引用传递
  • nodejs的调试(node-inspector)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 2019.2.20 c++ 知识梳理
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Angular4 模板式表单用法以及验证
  • Bytom交易说明(账户管理模式)
  • download使用浅析
  • ES6 学习笔记(一)let,const和解构赋值
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • React Native移动开发实战-3-实现页面间的数据传递
  • vue 个人积累(使用工具,组件)
  • 百度地图API标注+时间轴组件
  • 警报:线上事故之CountDownLatch的威力
  • 驱动程序原理
  • 用jquery写贪吃蛇
  • 原生js练习题---第五课
  • ​插件化DPI在商用WIFI中的价值
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (10)STL算法之搜索(二) 二分查找
  • (42)STM32——LCD显示屏实验笔记
  • (javascript)再说document.body.scrollTop的使用问题
  • (SpringBoot)第七章:SpringBoot日志文件
  • (ZT)一个美国文科博士的YardLife
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (蓝桥杯每日一题)love
  • (七)Knockout 创建自定义绑定
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一) storm的集群安装与配置
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 服务 ServiceController
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .NET学习教程二——.net基础定义+VS常用设置
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)