React 高阶组件示例

React 高阶组件示例react 中组件经常会重复使用 所以我们可以封装组件进行多功能的复用 常用的组件复用模式有 renderprops 模式和高阶组件模式高阶组件使用步骤 创建一个以 with 开头函数 目前我们约定 with 开头的组件为高阶组件 指定一个函数参数 首字母大写 作为渲染组件的组件名函数内部创建一个类组件 用来提供用于复用的逻辑代码并返回在高阶组件内渲染参数组件 将状态通过 props 传递给参数组件调用高阶组件 传入想要增强的组件 通过返回值拿到新组建 并渲染到页面中注意 react 组件默认用组件名称为

react中组件经常会重复使用,所以我们可以封装组件进行多功能的复用,常用的组件复用模式有:render props模式和高阶组件模式

高阶组件使用步骤:

  1. 创建一个以with开头函数(目前我们约定with开头的组件为高阶组件)
  2. 指定一个函数参数,首字母大写,作为渲染组件的组件名
  3. 函数内部创建一个类组件,用来提供用于复用的逻辑代码并返回
  4. 在高阶组件内渲染参数组件,将状态通过props传递给参数组件
  5. 调用高阶组件,传入想要增强的组件,通过返回值拿到新组建,并渲染到页面中

注意:react组件默认用组件名称为组件名,高阶组件渲染出的组件都是用高阶组件名作为组件名,多个渲染出来的组件名称是一样的,所以我们需要给高阶组件修改名称

import React from 'react' function withMove(WrappedComponent) { class App extends React.Component { state = { x: 0, y:0 } handleMouseMove=(e)=> { this.setState({ x: e.clientX, y: e.clientY, }) } componentDidMount() { window.addEventListener('mousemove',this.handleMouseMove) } componentWillUnmount() { window.removeEventListener('mousemove',this.handleMouseMove) } render() { return ( 
   ) } } App.displayName=`withMove${getDisplayName(WrappedComponent)}` return App } function getDisplayName(WrappedComponent) { return WrappedComponent.displayName || WrappedComponent.name || 'Component' } export default withMove 
import withMove from './pages/comC' const Position = props => ( ) const WithPosition = withMove(Position) function App() { return ( 
   ); } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211791.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午9:36
下一篇 2026年3月18日 下午9:36


相关推荐

  • Linux 内核编程总结[通俗易懂]

    Linux 内核编程总结[通俗易懂]Linux内核编程总结   从事了几年的内核编程,对内核编程有一定的经验,现总结、吐槽下,作为标记。   任何进程都有有进程的入口点,用户态的进程,其入口点是,main函数。   那么内核的入口点是什么?个人理解整个OS,运行起来就是一个进程,   内核的入口点是init进程,在这个进程中负责:   1)子进程的创建,包括内核的线程、用户态的进程。

    2022年10月8日
    4
  • hive添加字段

    hive添加字段

    2021年5月14日
    114
  • VoIP 技术究竟是什么?

    VoIP 技术究竟是什么?自从 1995 年首次面世用来 VoIP 已经成为世界上使用最广泛的电话产品 目前 VoIP 用户大约是 5 百万 业界观察家表示 未来两年 这一数字将增长 5 倍 将打电话通过互联网传输的 VoIP 技术也是目前世界上最经济的电话技术之一 尽管存在一些严重的局限性 许多 VoIP 服务一个月的费用才只有 20 美元 要搞清 VoIP 究竟是什么 你得明白以下问题 VoIP 是什么 VoIP

    2026年3月17日
    1
  • pycharm查看第三方库安装路径

    pycharm查看第三方库安装路径pycharm 查看第三方库安装路径更多原创性能测试文章关注十年性能测试专家 amp 7DGroup 公众号 1 在文件 setting2 鼠标放在安装好的第三方库名称上 自动显示安装路径

    2026年3月27日
    2
  • windows安装kafka教程

    windows安装kafka教程1、官网下载kafka【解压之后如图所示】2、修改zookeeper的配置文件dataDir=D:/zookeeper/datadataLogDir=D:/zookeeper/log3、启动zookeepercdD:\software\kafka\kafka_2.11-2.2.0\bin\windows在此目录下打开cmd,执行命令zookeeper-server…

    2022年10月16日
    5
  • 使用adb命令安装安卓apk包[通俗易懂]

    使用adb命令安装安卓apk包[通俗易懂]虽然网上也有许多adb安装安卓包的教程,但经过自己亲自试了一下后,觉得自己写下来的才是自己的收获。一、下载安装adb工具下载地址有很多,这里是我下载的地址:https://pan.baidu.com/s/1mgGkNZM,下载文件比较齐全。下载后是个压缩包,解压后一共有5个文件,如下图:这里我都是解压到当前文件夹了因为安装包里就有个cmd,所以就省去了在运行中打开cmd,再在cmd中打开adb的步骤了,在要用adb工具时直接点击cmd.exe就可以了。如下有位网友总结的安.

    2022年6月3日
    74

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号