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>

效果展示:

相关推荐
燕落南枝6 小时前
CSS 表单选择器与伪元素选择器详解
前端·css
拖孩6 小时前
一个人 + AI 做的小程序,今天,正式回本了
前端·后端·微信小程序
进击的丸子6 小时前
APP 人脸识别增值版 SDK:Camera2 无缝接入指南
前端·前端框架·代码规范
开开心心就好6 小时前
本地文件搜索工具,双击Ctrl就能呼出搜索
java·服务器·前端·支持向量机·ffmpeg·音视频·模拟退火算法
知了清语7 小时前
SVG 缩放预览:F12 无法定位子元素 & 放大模糊
前端
AN7 小时前
一个人,带着一群 AI:一个 10 年前端如何做出几十个团队在用的在线文档
前端
ByteCoder.7 小时前
班前十分钟的清单,按体检引导单来写
java·服务器·前端·助播虾
小大宇7 小时前
vue知识点9-标签上的ref
前端·javascript·vue.js
艺杯羹7 小时前
告别大模型滥用与延迟失控:确定性优先法则与本地规则引擎实战
前端·人工智能·系统架构
MetWeave7 小时前
一根杆与一张场:把你的机场画上地图
前端·数据可视化