【发布时间】:2019-03-17 11:15:14
【问题描述】:
HOC 或高阶组件的定义如下:
高阶组件是一个函数,它接受一个组件并且 返回一个新组件。
一个例子是这样的:
const EnhancedComponent = higherOrderComponent(WrappedComponent);
但是下面的例子呢? 在以下示例中,Masonry 组件是否也是 HOC?
<Masonry>
{childElements}
</Masonry>
那么这个呢? ErrorBoundary 是 HOC 吗?
<ErrorBoundary>
<MyComponent />
</ErrorBoundary>
【问题讨论】:
-
第二个不是 HOC。它只是一个渲染
children属性的组件。 -
不同之处在于 HOC 采用一个组件,而您的第二个示例是包装一个 React 元素(即 React.createElement 的结果)。你定义中描述的 HOC 必须有一个组件。
-
谢谢你们的回答。我刚刚扩展了我的问题(对此感到抱歉)。第三个例子呢?
标签: reactjs