个人理解:高阶组件的目的其实就是复用,手段是代理和继承
高阶组件是一个函数,形参是组件,返回也是返回组件。
//B是组件类,C是其他参数,这里代表key值,
//功能是从localStorage区key出来,传给B
//可能有很多组件都需要从本地仓库区不同的东西,所以用这种装饰者模式
function A(B,C){
return class extends Component{
constructor(props){
super(props);
this.setState({
data:LocalStory.getItem(C)
});
}
render(<div Class="还可以在指定组件上加样式"><B DATA={this.state.data} {...props}></div>);
}
}
继承也可以实现
//B是组件类
//功能是判定是否登录,登录则渲染组件,否则不渲染
function A(B){
return class extends B{
if(isLogin){
super.render();
}else{
return null
}
}
}