React 高阶组件(HOC)

React 高阶组件(HOC)

高阶组件不是 React API 的一部分,而是一种用来复用组件逻辑而衍生出来的一种技术。

什么是高阶组件

高阶组件就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件。基本上,这是从 React 的组成性质派生的一种模式,我们称它们为"纯"组件, 因为它们可以接受任何动态提供的子组件,但它们不会修改或复制其输入组件的任何行为。

简言之, 高阶组件:

  • 是一个函数
  • 传入一个组件
  • 返回一个新组件

Example: 给任意组件添加 Tooltip

这里通过一个例子演示高阶组件的用法。

  1. 高阶组件核心代码
javascript 复制代码
export const withTooltip = (Component: React.FunctionComponent) => {
  return ({ ...props }: any) => {
    return (
      <Flex gap={1}>
        <Component {...props} />
        <Tooltip description="这是提示内容">
          <IconPark type="info" />
        </Tooltip>
      </Flex>
    )
  }
}
  1. 传入需要添加 Tooltip 的组件
javascript 复制代码
const TypographyWithToolTip = withTooltip(Typography)
  1. 使用上一步返回的高阶组件
javascript 复制代码
<TypographyWithToolTip>111</TypographyWithToolTip>

效果展示:

相关推荐
rainboy16 小时前
Flutter :自己动手,封装一个小巧精致的气泡弹窗库
前端·flutter·github
合作小小程序员小小店16 小时前
web网页开发,在线%人力资源管理%系统,基于Idea,html,css,jQuery,java,jsp,ssh,mysql。
java·前端·css·数据库·mysql·html·intellij-idea
Ace_317508877616 小时前
拼多多商品详情接口深度解析:从加密参数破解到数据全量获取
前端·数据库·github
yuejich16 小时前
命名规范snake_case
服务器·前端·数据库
天平16 小时前
开发了几个app后,我在React Native用到的几个库的推荐
android·前端·react native
消失的旧时光-194317 小时前
Kotlinx.serialization 对多态对象(sealed class )支持更好用
java·服务器·前端
少卿17 小时前
React Compiler 完全指南:自动化性能优化的未来
前端·javascript
广州华水科技17 小时前
水库变形监测推荐:2025年单北斗GNSS变形监测系统TOP5,助力基础设施安全
前端
广州华水科技17 小时前
北斗GNSS变形监测一体机在基础设施安全中的应用与优势
前端
七淮17 小时前
umi4暗黑模式设置
前端