高阶组件——withRouter的原理和用法
作用:
高阶组件中的withRouter, 作用是将一个组件包裹进Route里面, 然后react-router的三个对象history, location, match就会被放进这个组件的props属性中.
把不是通过路由切换过来的组件中,将react-router 的 history、location、match 三个对象传入props对象上
withRouter, 作用是将一个组件包裹进Route里面, 然后react-router的三个对象history, location, match就会被放进这个组件的props属性中.此时这个组件就具备了路由的属性 1 import { Switch, Route, Redirect, withRouter } from "react-router-dom";
2
3 import Home from "./components/Home.jsx";
4 import User from "./components/User.jsx";
5
6 class App extends React.Component {
7 constructor(props) {
8 super(props)
9 console.log(props) // 此时props里就具备了路由对象
10 }
11 render() {
12 return (
13 <div>
14 <Switch>
15 <Redirect from="/" to="/home" exact />
16 <Route exact path="/home" component={Home}></Route>
17 <Route exact path="/user" component={User}></Route>
18 </Switch>
19 </div>
20 );
21 }
22 }
23
24 export default withRouter(App); //参数是一个组件,返回一个组件
props.history.listen((e) => { console.log(e, '开启了withRouter') })
高阶组件——withRouter的原理和用法的更多相关文章
- React进阶之高阶组件
前言 本文代码浅显易懂,思想深入实用.此属于react进阶用法,如果你还不了解react,建议从文档开始看起. 我们都知道高阶函数是什么, 高阶组件其实是差不多的用法,只不过传入的参数变成了react ...
- 【转】react的高阶组件
React进阶之高阶组件 前言 本文代码浅显易懂,思想深入实用.此属于react进阶用法,如果你还不了解react,建议从文档开始看起. 我们都知道高阶函数是什么, 高阶组件其实是差不多的用法,只 ...
- react第七单元(组件的高级用法-组件的组合(children的用法)-高阶组件-封装组件)
第七单元(组件的高级用法-组件的组合(children的用法)-高阶组件-封装组件) #受控组件 简而言之,就是受到状态state控制的表单,表单的值改变则state值也改变,受控组件必须要搭配onc ...
- 高阶组件(Higher-Order Components)
有时候人们很喜欢造一些名字很吓人的名词,让人一听这个名词就觉得自己不可能学会,从而让人望而却步.但是其实这些名词背后所代表的东西其实很简单. 我不能说高阶组件就是这么一个东西.但是它是一个概念上很简单 ...
- 聊聊React高阶组件(Higher-Order Components)
使用 react已经有不短的时间了,最近看到关于 react高阶组件的一篇文章,看了之后顿时眼前一亮,对于我这种还在新手村晃荡.一切朝着打怪升级看齐的小喽啰来说,像这种难度不是太高同时门槛也不是那么低 ...
- react 高阶组件的 理解和应用
高阶组件是什么东西 简单的理解是:一个包装了另一个基础组件的组件.(相对高阶组件来说,我习惯把被包装的组件称为基础组件) 注意:这里说的是包装,可以理解成包裹和组装: 具体的是高阶组件的两种形式吧: ...
- React 精要面试题讲解(五) 高阶组件真解
说明与目录 在学习本章内容之前,最好是具备react中'插槽(children)'及'组合与继承' 这两点的知识积累. 详情请参照React 精要面试题讲解(四) 组合与继承不得不说的秘密. 哦不好意 ...
- react高阶组件的使用
为了提高代码的复用在react中我们可以使用高阶组件 1.添加高阶组件 高阶组件主要代码模板HOC.js export default (WrappedComponent) => { retur ...
- React文档(二十四)高阶组件
高阶组件(HOC)是React里的高级技术为了应对重用组件的逻辑.HOCs本质上不是React API的一部分.它是从React的组合性质中显露出来的模式. 具体来说,一个高阶组件就是一个获取一个组件 ...
- react高阶组件
高阶组件 为了提高组件复用性,在react中就有了HOC(Higher-Order Component)的概念.所谓的高阶组件,其本质依旧是组件,只是它返回另外一个组件,产生新的组件可以对属性进行包装 ...
随机推荐
- 8.Vuex状态管理
一.Vuex 概述 1.1 组件之间共享数据的方式 父传子: v-bind 属性绑定 子传父: v-on 事件绑定 兄弟组件之间共享数据: EventBus $on 接收数据的那个组件 (数据接收方) ...
- mysql取消/开启外键约束
删除外键约束: SET foreign_key_checks=0; 启动外键约束: SET foreign_key_checks=1;
- 统信桌面端专业版开启cron日志,确认定时任务执行情况
默认没有开启cron日志记录 1. 修改rsyslog vi /etc/rsyslog.conf #将cron前面的注释符去掉 cron.* /var/log/cron.log 排查完毕需关闭,重新注 ...
- Java基础学习——Scanner
import java.util.Scanner; public class HelloWord{ public static void main(String[] args){ Scanner s= ...
- button 样式 触发器
<Style x:Key="Style.OkOperationButton" TargetType="ButtonBase"> <Setter ...
- 记一个线上问题,selectById查询id出现两条数据问题
查询selectById(),查询1529665444035670017(Long)结果出现两条数据: id:1529665444035670017,和id:1529665444035670018 调 ...
- win10试安装docker部署hyperf
一:部署虚拟机,这里使用的win系统带的Hyper-V虚拟机,其它虚拟机也行 1.win+R打开命令行 2.安装Hyper-V . 失败放弃安装,选择其它吧 3.win10安装VMware 这里参考 ...
- 暗夜发光,独自闪耀,盘点网页暗黑模式(DarkMode)下的特效和动效,CSS3实现
众所周知,网页的暗黑模式可以减少屏幕反射和蓝光辐射,减少眼睛的疲劳感,特别是在夜间使用时更为明显.其实暗黑模式也给霓虹灯效应(Neon Effect)提供了发挥的环境. 霓虹灯效应是一种视觉效果,其特 ...
- 使用 diffusers 训练你自己的 ControlNet 🧨
简介 ControlNet 这个神经网络模型使得用户可以通过施加额外条件,细粒度地控制扩散模型的生成过程.这一技术最初由 Adding Conditional Control to Text-to-I ...
- PVE虚拟系统的安装
上期有说到,会出一些具体的安装过程以及掉进去的坑.这集我就说一说PVE系统的安装. As mentioned in the previous issue, there will be some ...