什么是高阶组件

在解释什么是高阶组件之前,可以先了解一下什么是 高阶函数,因为它们的概念非常相似,下面是 高阶函数 的定义:

如果一个函数 接受一个或多个函数作为参数或者返回一个函数 就可称之为 高阶函数

下面就是一个简单的高阶函数:

1
2
3
function withGreeting(greeting = () => {}) {
return greeting;
}

高阶组件 的定义和 高阶函数 非常相似:

如果一个函数 接受一个或多个组件作为参数并且返回一个组件 就可称之为 高阶组件

下面就是一个简单的高阶组件:

1
2
3
function HigherOrderComponent(WrappedComponent) {
return <WrappedComponent />;
}

所以你可能会发现,当高阶组件中返回的组件是 无状态组件(Stateless Component) 时,该高阶组件其实就是一个 高阶函数,因为 无状态组件 本身就是一个纯函数。

无状态组件也称函数式组件。