用React官网的解释来说,就是获取一个组件,然后返回一个新的组件
一.高阶组件常用于解决交叉问题
高阶组件可以使我们一个地方定义逻辑,之后在所有的组件处使用。
For example:withSubscription 封装订阅
高阶组件的基本定义方法:
function withSubscription(WrappedComponent,passData){
.......
return class extends React.Component {
render() {
return <WrappedComponent data={this.state.data} {...this.props} />;
}
}
}
// 调用
const componentWithSubscription = withSubscription(
component,
(DataSource) => DataSource.getComments()
);
高阶组件就是一个没有副作用的纯函数,因此不能在高阶组件当中向prototype原型属性进行修改。
HOC会wrapped被传入的组件,最终返回一个enhanced的组件,进而被其他组件调用。
(待续)