React之 4 高階元件

2021-10-03 09:22:05 字數 3407 閱讀 7525

4.1 初識高階元件

import react,

from

'react'

const

withlearnreact

= comp =>

繼承原來元件的屬性,title屬性

//新元件加了name屬性

return

"newattributename"

>

<

/comp>

}return newcompnent

}class

extends

component

<

/p>

name屬性:

<

/p>

<

/div>)}

}export

default

withlearnreact

index.js

import react from

'react'

import reactdom from

'react-dom'

import

'./index.css'

;import

*as serviceworker from

'./serviceworker'

reactdom.

render

("我是title屬性"

/>

, document.

getelementbyid

('root'))

serviceworker.

unregister

()

4.2 ⾼階元件的鏈式調⽤

import react,

from

'react'

//第乙個高階元件,新增屬性

const

withlearnreact

= comp =>

繼承原來元件的屬性,title屬性

//新元件加了name屬性

return

"newattributename"

>

<

/comp>

}return newcompnent

}//第二個高階元件,重寫生命週期

const

withlifecycle

=comp=>

render()

>

<

/comp>}}

return newcompnent

}class

extends

component

<

/p>

name屬性:

<

/p>

<

/div>)}

}export

default

withlifecycle

(withlearnreact

)

4.3 ⾼階元件裝飾器

上面的最後一行,是不是讓你很懵

export

default

withlifecycle

(withlearnreact

)

我們可以不用鏈式呼叫,改用裝飾器

用裝飾器前期準備工作

import react,

from

'react'

//第乙個高階元件,新增屬性

const

withlearnreact

= comp =>

繼承原來元件的屬性,title屬性

//新元件加了name屬性

return

"newattributename"

>

<

/comp>

}return newcompnent

}//第二個高階元件,重寫生命週期

const

withlifecycle

= comp =>

render()

>

<

/comp>}}

return newcompnent

}@withlearnreact

@withlifecycle

class

extends

component

<

/p>

name屬性:

<

/p>

<

/div>)}

}export

4.4 元件通訊之上下⽂(context)

import react,

from

'react'

let store=

class

info

extends

component

<

/p>

性別:<

/p>

<

/div>)}

}function

*******

(props)

>

<

/info>

<

/div>)}

class

extends

component

***=

>

<

/*******>

<

/div>)}

}export

import react,

from

'react'

//建立上下文

const hahacontext=react.

createcontext()

const

=hahacontext

let store=

class

info

extends

component

<

/p>

性別:<

/p>

<

/div>)}

}<

/consumer>)}

}function

*******

(props)

class

extends

component

>

<*******>

<

/*******>

<

/provider>

<

/div>)}

}export

React高階元件

想想以前用原生和jquery的專案,上千行的code映入眼簾,瞬間有種昏死過去的衝動。難以維護,改乙個bug可能出現n個bug,真的是很痛苦。於是乎元件化成為了當前前端開發的主流技術。angular vue和react很好的幫我們實現了元件化。但是我們常常也會遇到一種情況,就是兩個元件往往有很多的重...

react高階元件

基本概念 函式可以作為引數被傳遞 函式可以作為返回值輸出 元件作為引數被傳遞,返回值是乙個元件 高階元件是乙個函式 案例 將a元件作為公共元件,bc元件作為a函式的引數,來共享顯示a元件 此處紅框是a元件,紅框裡左邊內容為b元件,右邊內容為c元件 1.建立公共的a元件 將元件a封裝成乙個函式,接收乙...

React 高階元件

高階元件 high order component,hoc 輸入 react 元件 輸出 react 元件 高階元件的作用主要是用來加強元件,通過把基礎元件拆分成很小的粒度,通過高階元件進行增強並返回,以此提高復用性。比如需要開發乙個訊息框,一開始只需要乙個模態框能夠顯示訊息就可以。後來需要多增加 ...