全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-20 6 分钟 ✍️ juanwangdev

高阶组件

高阶组件(HOC)是增强组件功能的模式。

基本概念

JavaScript
function withLogging(WrappedComponent) {
  return {
    mounted() {
      console.log('组件挂载')
    },
    render() {
      return h(WrappedComponent, this.$attrs)
    }
  }
}

使用

JavaScript
import MyButton from './MyButton.vue'

const EnhancedButton = withLogging(MyButton)

传递属性和事件

JavaScript
function withExtraProps(WrappedComponent) {
  return {
    props: {
      extraProp: String
    },
    render() {
      return h(WrappedComponent, {
        ...this.$attrs,
        extraProp: this.extraProp
      })
    }
  }
}

Vue 3 中 Composition API 和组合函数(Composables)是更推荐的代码复用方式。

对比

方式适用场景
HOC跨组件添加通用逻辑
Mixin组件选项复用(Vue 2)
ComposablesComposition API 逻辑复用

要点总结

  • HOC 是接收组件返回新组件的函数
  • 通过 h() 函数渲染包装的组件
  • 需正确传递属性和事件
  • Vue 3 推荐使用 Composables 替代

📝 发现内容有误?点击此处直接编辑

← 上一篇 递归组件
下一篇 → createElement参数
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库