React高級(jí)指引

React高級(jí)指引
1、context
一般用于嵌套組件需要共享上級(jí)組件狀態(tài)的場(chǎng)景,避免層層傳遞。
訂閱多個(gè)context

總結(jié):
三種使用方式,contextType, Consumer和useContext。
區(qū)別:
ContextType,使用簡(jiǎn)單,必須用在類組件上,只能通過該API訂閱單一context.
Consumer,最廣泛使用的
useContext,Hook方法,只能用在函數(shù)組件當(dāng)中或者自定義的Hook當(dāng)中。

2、render props
將一個(gè)render函數(shù)作為prop屬性進(jìn)行傳遞。
解決的問題是:比如只有最底層下級(jí)組件依賴上級(jí)組件的狀態(tài),就可以把相關(guān)的渲染內(nèi)容放到render function中進(jìn)行傳遞,減少傳遞的屬性數(shù)。不同的上級(jí)組件可以專屬定制,不用底層組件去硬編碼適配。

3、錯(cuò)誤邊界ErrorBoundary
部分渲染錯(cuò)誤 不應(yīng)該導(dǎo)致整個(gè)應(yīng)用崩潰。一個(gè)錯(cuò)誤的UI還不如不展示,比如支付場(chǎng)景。ErrorBoundary支持出錯(cuò)時(shí),展示備用UI,用戶體驗(yàn)更友好。

4、Refs轉(zhuǎn)發(fā) 參考
當(dāng)給一個(gè)子組件傳遞了ref時(shí),如果子組件是被高階組件包裹的,則ref實(shí)際指向的是高階組件,而不是被包裹的子組件,如果要繼續(xù)傳遞給子組件,則需要在高階組件中進(jìn)行refs轉(zhuǎn)發(fā):React.forwardRef((props, ref) => <Component ...props forwaredRef={ref} />),這樣子組件可以拿到ref

5、Fragments
開發(fā)中常見的一個(gè)場(chǎng)景是代碼分組,React.Fragment允許我們將代碼分組但是又不添加額外的dom節(jié)點(diǎn)。短語(yǔ)法是:<>...</>

6、高階組件HOC(higher-order-component)

7、React.createPortal
Portal 提供了一種將子節(jié)點(diǎn)渲染到存在于父組件以外的 DOM 節(jié)點(diǎn)的優(yōu)秀的方案

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容