Fragments:
????首先麦射,個(gè)人覺(jué)得钧排,如果代碼結(jié)構(gòu)和組件拆分合理的話,這個(gè)東西基本用不到前计。這個(gè)東西給人的感覺(jué)就是個(gè)空標(biāo)簽胞谭,還必須得手動(dòng)傳key。它設(shè)計(jì)的初衷是:
? ? 這完全可以用map直接返回子節(jié)點(diǎn)男杈。甚至不用Fragments包裝丈屹,使用div或者其他標(biāo)簽也是可以的。
Portals:
????這里有必要說(shuō)一個(gè)api:
????ReactDOM.createPortal(child,container)伶棒。
? ? 這個(gè)api的作用是把child渲染到container節(jié)點(diǎn)上旺垒,實(shí)際上是提供了一套完整的掛載方案。另外肤无,關(guān)于事件冒泡先蒋,需要注意的是:
Error Boundaries:
api:componentDidCatch(error, info);
React的錯(cuò)誤處理機(jī)制宛渐。相當(dāng)于原生代碼里的try/catch竞漾,但try/catch只能在命令式代碼中使用,而react是聲明式的窥翩。你需要知道預(yù)期渲染的東西业岁,可以把它理解為生命周期,但事實(shí)上鳍烁,它貫穿了組件的整個(gè)聲明周期叨襟。
Render Props:
將子組件暴露給父組件的一種方法。
在Props中幔荒, 我們可以傳遞數(shù)據(jù),那如果我們傳遞一個(gè)組件梳玫,或者一個(gè)函數(shù)呢爹梁?react當(dāng)然照樣認(rèn)識(shí)√崤欤基于這種特點(diǎn)姚垃,我們?cè)趯傩灾校瑐鬟f一個(gè)函數(shù)盼忌,函數(shù)中去渲染一個(gè)組件积糯。個(gè)人覺(jué)得是this.props.children的另外一種擴(kuò)展形式。再者谦纱,我們經(jīng)常這么干:
但這次看成,我們把this.aa方法暴露給了父組件,僅此而已跨嘉。react用起來(lái)川慌,就是這么簡(jiǎn)單。