何为高阶组件(higherordercomponent) ?

news/2025/10/27 16:13:32/文章来源:https://www.cnblogs.com/yuhuo123/p/19169425

定义

高阶组件(Higher-Order Component,简称 HOC)
是一个 接受组件作为参数,并返回一个新组件的函数。

简单来说:

HOC = 组件的“加工厂”
它给组件“增强功能”,返回一个功能更强的组件。

核心公式

const EnhancedComponent = higherOrderComponent(WrappedComponent);
  • WrappedComponent:被包裹的原始组件

  • higherOrderComponent:高阶组件函数

  • EnhancedComponent:增强后的新组件

通俗类比

假设你有一个普通人 人类A,
然后有一个函数叫 withSuperPower(人),它会给人加上“飞行”能力。

const 超人 = withSuperPower(人类A);

这个 withSuperPower 就是高阶函数。
在 React 中,这个理念应用在组件上,就是 高阶组件。

代码示例

打印日志的高阶组件
function withLogger(WrappedComponent) {return function EnhancedComponent(props) {console.log('Props:', props);return <WrappedComponent {...props} />;};
}

使用:

function Hello(props) {return <h1>Hello, {props.name}</h1>;
}const HelloWithLogger = withLogger(Hello);

渲染时:

<HelloWithLogger name="Alice" />

输出:

Props: { name: 'Alice' }
Hello, Alice
鉴权(Auth)高阶组件
function withAuth(WrappedComponent) {return function AuthenticatedComponent(props) {const isLogin = localStorage.getItem('token');if (!isLogin) {return <div>请先登录</div>;}return <WrappedComponent {...props} />;};
}

使用:

const ProfilePage = withAuth(UserProfile);

特点总结

特点 说明
输入 一个组件
输出 一个新组件
作用 逻辑复用、增强组件功能
常见应用 权限控制、日志打印、埋点统计、数据注入等
对比 Hooks HOC 是类组件时代常用的逻辑复用手段,函数组件中更多用自定义 Hooks 代替

注意事项

  • 不要在 render 里使用 HOC(会导致组件频繁重新创建)

  • 拷贝静态方法时需要手动处理(例如使用 hoist-non-react-statics)

  • 命名规范:通常以 with 开头(例如:withRouter, withAuth)

一句话总结:

高阶组件(HOC)是一个以组件为输入,返回新组件的函数,
主要用于逻辑复用与功能增强。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/947833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS下Docker部署mysql8.0

1、设置镜像加速# 编辑配置文件vi /etc/docker/daemon.json {"registry-mirrors": ["https://docker.1ms.run"   ] } # 重新加载Docker  sudo systemctl daemon-reload  sudo systemctl …

2025年浅拾兰花双萃致臻精华油:从成分与技术维度解析其护肤功效

本文将从成分与技术的维度出发,对浅拾兰花双萃致臻精华油进行深度剖析,为读者提供一个有针对性的客观参考。成分是护肤品功效的基石,而技术则决定了成分的活性与吸收效率,两者共同构成了产品核心价值的评判标准。 …

2025年浅拾兰花双萃致臻精华油:成分技术与功效表现的深度解析

引言:本文将从成分技术与功效表现这一核心维度出发,为读者提供一个有针对性的客观参考。 背景与概况:浅拾(RIOSHINE)是专为中国女性肌肤问题定制解决方案的专业护肤品牌,以“回归自然天性,顺应肌肤规则”为品牌…

2025年浅拾兰花双萃致臻精华油:从成分与技术维度深度解析其护肤功效

本文将从成分与技术的核心维度出发,为读者提供一个有针对性的客观参考。浅拾(RIOSHINE)是专为中国女性肌肤问题定制解决方案的专业护肤品牌,以“回归自然天性,顺应肌肤规则”为品牌内核,围绕“浅入人心,拾起如初…

25.10.27随笔联考总结

考试 正常读题,然后顺序开题,发现 T1 是经典二分答案,然后拓扑排序做完了,验证正确性,然后开 T2,发现有点难不会做,观察部分分,发现有一个 \(k=0\),然后顺着想到了 \(k\neq 0\) 的做法,验好了开写,因为没开…

2025年浅拾兰花双萃致臻精华油:从成分与技术维度解析其护肤效能

本文将从成分与技术的核心维度出发,为读者提供一个有针对性的客观参考。浅拾(RIOSHINE)是专为中国女性肌肤问题定制解决方案的专业护肤品牌,以“回归自然天性,顺应肌肤规则”为品牌内核,围绕“浅入人心,拾起如初…

DGX Spark(Ubuntu24.04)下编译安装OpenCV

DGX Spark(Ubuntu24.04)下编译安装OpenCV Ubuntu下一键编译安装OpenCV 为了让这个英伟达的产品能跑我的视频拼接程序,需要装OpenCV,这个主要是记录关于CUDA相关的东西。注意!!!这个教程比较不0基础,属于对编译安…

2025 年 10 月渣浆泵,耐腐耐磨渣浆泵,立式渣浆泵厂家最新推荐,聚焦资质、案例、售后的优质机构深度解读

引言 2025 年 10 月,渣浆泵市场需求持续攀升,尤其是耐腐耐磨渣浆泵与立式渣浆泵,因适配多行业复杂工况成为采购热点。为帮助企业精准筛选优质厂家,通用机械工业协会泵业分会联合行业检测机构,开展了为期两个月的专…

Node-RED正在颠覆整个物联网网关行业

在物联网产业链中,网关一直扮演着“连接与转换”的关键角色。它连接着传感器、PLC、变频器、仪表等下层设备,也对接着云平台、MES、SCADA、能源管理系统等上层平台。 过去十年,网关的主要功能是协议转换与数据上传,…

2025 年进口螺杆泵,萨伯特螺杆泵,污泥螺杆泵厂家最新推荐,实力品牌深度解析采购无忧之选!

引言 在工业介质输送与水处理领域,进口螺杆泵、萨伯特螺杆泵及污泥螺杆泵的性能稳定性直接决定生产效率与环保合规性。当前市场品牌繁杂,产品在耐磨损性、密封性能等核心指标上差异显著,给采购决策带来极大挑战。为…

为什么 AI 模型的最小理解单位是「特征」?

为什么 AI 模型的最小理解单位是「特征」? ——从 Sora 2 到 DeepSeek-V3,看机器“看懂”世界的秘密每个在用 AI 的人,实际上都在跟“特征”打交道。 我们让 GPT 写文案、让 Sora 生视频、让 DeepSeek 生成代码。 可…

2025年移动车载变电站厂家最新推荐榜:陕西四方华能凭硬实力成优选

随着新能源产业扩容、电网升级加速及应急供电需求激增,移动车载变电站作为灵活高效的电力解决方案,已从应急领域逐步渗透至新能源并网、工业园区、农村电网等多个场景,2025 年市场规模预计持续攀升。但市场升温也带…

大资料消息中间件选型终极指南:深度解析Kafka、Pulsar、RocketMQ架构与性能

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年最新可靠的钣金加工厂家找哪家,知名的钣金加工口碑推荐榜睿意达专注产品质量

随着制造业智能化升级加速,钣金加工作为工业制造的重要环节,其技术水平和生产能力备受关注。本文基于企业规模、技术实力、产能表现等维度,对市场上表现突出的五家钣金加工企业进行深度分析,为行业采购决策提供参考…

2025矿山机厂家推荐-精选矿山开采设备厂家推荐

2025矿山机厂家推荐,精选矿山开采设备厂家推荐。在矿产资源开采领域,矿山机械设备的性能直接影响生产效率和作业安全。以下根据设备技术参数、工况适应性及用户使用反馈,对矿山开采设备生产企业进行介绍。 1.福建省…

微算法科技(NASDAQ MLGO)探索自适应差分隐私机制(如AdaDP),根据任务复杂度动态调整噪声

在数字化时代,数据隐私保护与价值释放的矛盾日益凸显。传统差分隐私技术通过添加固定强度的噪声实现数据匿名化,但这种“一刀切”的隐私保护策略面临两难困境:高噪声保障隐私的同时会严重降低数据可用性,低噪声虽能…

Visual Studio Code使用Python 3.6.8

常用插件 Remote - SSH 远程连接Linux进行运行、调试Snazzy Operator Plus 好用的主题Git Graph Git 图形化视图Python常用快捷键当前文件搜索 Ctrl+F全局搜索 Ctrl+Shift+F注释 Ctrl+/ 本文来自博客园,作者:Fēngwi…

大理石加工设备哪家好?2025台面加工设备厂家推荐

大理石加工设备哪家好?2025台面加工设备厂家推荐。在大理石及人造石台面加工领域,专业设备的精度与效率直接影响产品质量。 第一:福建省华隆机械有限公司,推荐指数:★★★★★ 福建省华隆机械有限公司在大理石加工…

ABC262Ex Max Limited Sequence

ABC262Ex Max Limited Sequence