react的高阶组件
高阶组件的作用就是实现组件复用,节省内存
- 先定义一个函数式组价,传入一个参数,这个参数就是组件
- 组件内返回一个class类组件,类名可以写也可以不写
- 类组件内部可以写方法,数据,然后将参数当做组件返回出去,并将方法或者数据,传个这个组件
代码
import React,{ Component } from 'react';
const Hoc = ( Comp ) =>{
return class banner extends Component{
banner = () => {
return 'zhangyue'
}
render () {
return (
<Comp banner = { this.banner }></Comp>
)
}
}
}
class A extends Component{
render () {
return (
<div>
<p> A组件 </p>
{ this.props.banner() }
</div>
)
}
}
class B extends Component{
render () {
return (
<div>
<p> B组件 </p>
{ this.props.banner() }
</div>
)
}
}
const HocA = Hoc(A)
const HocB = Hoc(B)
class C extends Component{
render () {
return (
<div>
<p> C组件 </p>
<HocA></HocA>
<HocB></HocB>
</div>
)
}
}
export default C