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 小时前
微前端进阶(二)
前端
代码N年归来仍是新手村成员6 小时前
【AWS】Lambda 初识与服务部署
javascript·react.js·ai·node.js·云计算·ai编程·aws
罗超驿6 小时前
9.零基础学CSS:元素属性设置(字体、颜色、对齐等)全解析
前端·css
云水一下6 小时前
JavaScript 从零基础到精通系列:流程控制、函数与作用域
前端·javascript
大雷神6 小时前
HarmonyOS APP<玩转React>开源教程三十一:示例项目下载功能
react.js·开源·harmonyos
柚子科技6 小时前
Vue3 响应式原理:我被 ref 和 reactive 坑了3次后终于搞懂了
前端·javascript·vue.js
大鱼前端7 小时前
Veaury:让Vue和React组件在同一应用中共存的神器
前端·vue.js·react.js
五月君_7 小时前
继 React、Vue 之后,Three.js 也有 Skills 了!AI 写 3D 终于不“晕”了
javascript·vue.js·人工智能·react.js·3d
小崽崽17 小时前
如何实现React 19+Vite+TypeScript技术栈告别高薪主播!从零打造 24 小时“AI 销冠”:星云数字人直播间全链路实战
人工智能·react.js·typescript
scan7247 小时前
大模型只是知道要调用工具,本身不
前端·javascript·html