1. 程式人生 > >高階組件簡介

高階組件簡介

ret ole 屬性 clas 一個 另一個 wrap 就是 hello

組件:
class Hello extends React.Component{

render(){
return <h2>hello imooc i love react&redux</h2>
}

}

組件本質其實就是一個函數。

高階組件:

function WrapperHello(Comp){

class WrapComp extends React.Component{

render(){

return(
<div>
<p>這是高階組件特有的元素</p>
<Comp {...this.props}></Comp>
</div>
)
}

}
return WrapComp

}

Hello = WrapperHello(Hello)


==================================

以上的寫法等同於

function WrapperHello(Comp){

class WrapComp extends React.Component{

render(){

return(
<div>
<p>這是高階組件特有的元素</p>
<Comp {...this.props}></Comp>
</div>
)
}

}
return WrapComp

}

@WraperHello
class Hello extends React.Component{

render(){
return <h2>hello imooc i love react&redux</h2>
}

}

//裝飾器


高階組件:給一個組件,返回另一個組件


主要有兩種功能:
1.屬性代理

包裹後加一些元素或屬性


2.反向繼承


//可以改寫生命周期,修改渲染的邏輯和流程
function WrapperHello(Comp){

class WrapComp extends Comp{

componentDidMount(){
console.log(‘高階組件新增的生命周期,加載完成‘)
}
render(){

}
}

}

高階組件簡介