React.Fragment

React.Fragment

官方文檔:

React 中一個(gè)常見(jiàn)模式是為一個(gè)組件返回多個(gè)元素恭垦。Fragments 可以讓你聚合一個(gè)子元素列表,并且不在DOM中增加額外節(jié)點(diǎn)士败。

Fragments 看起來(lái)像空的 JSX 標(biāo)簽:

render() {
  return (
    <>
      <ChildA />
      <ChildB />
      <ChildC />
    </>
  );
}

一個(gè)常見(jiàn)模式是為一個(gè)組件返回一個(gè)子元素列表控汉。以這個(gè)示例的 React 片段為例:

class Table extends React.Component {
  render() {
    return (
      <table>
        <tr>
          <Columns />
        </tr>
      </table>
    );
  }
}

為了渲染有效的 HTML , <Columns /> 需要返回多個(gè) <td> 元素钟病。如果一個(gè)父 div<Columns /> 的 render()**** 函數(shù)里面使用萧恕,那么最終的 HTML 將是無(wú)效的。

class Columns extends React.Component {
  render() {
    return (
      <div>
        <td>Hello</td>
        <td>World</td>
      </div>
    );
  }
}

<Table /> 組件中的輸出結(jié)果如下:

<table>
  <tr>
    <div>
      <td>Hello</td>
      <td>World</td>
    </div>
  </tr>
</table>

所以肠阱,我們介紹 Fragments票唆。

class Columns extends React.Component {
  render() {
    return (
      <>
        <td>Hello</td>
        <td>World</td>
      </>
    );
  }
}

在正確的 <Table /> 組件中,這個(gè)結(jié)果輸出如下:

<table>
  <tr>
    <td>Hello</td>
    <td>World</td>
  </tr>
</table>

你可以像使用其它元素那樣使用 <></>屹徘。

另一種使用片段的方式是使用 React.Fragment 組件走趋,React.Fragment 組件可以在 React 對(duì)象上使用。 這可能是必要的缘回,如果你的工具還不支持 JSX 片段吆视。 注意在 React 中, <></> 是 <React.Fragment/> 的語(yǔ)法糖酥宴。

class Columns extends React.Component {
  render() {
    return (
      <React.Fragment>
        <td>Hello</td>
        <td>World</td>
      </React.Fragment>
    );
  }
}

帶 key 的 Fragments

<></> 語(yǔ)法不能接受鍵值或?qū)傩浴?/p>

如果你需要一個(gè)帶 key 的片段啦吧,你可以直接使用 <React.Fragment /> 。

一個(gè)使用場(chǎng)景是映射一個(gè)集合為一個(gè)片段數(shù)組 — 例如:創(chuàng)建一個(gè)描述列表:

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // 沒(méi)有`key`拙寡,將會(huì)觸發(fā)一個(gè)key警告
        <React.Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </React.Fragment>
      ))}
    </dl>
  );
}

key 是唯一可以傳遞給 Fragment 的屬性授滓。在將來(lái),我們可能增加額外的屬性支持肆糕,比如事件處理般堆。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诚啃,隨后出現(xiàn)的幾起案子淮摔,更是在濱河造成了極大的恐慌,老刑警劉巖始赎,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件和橙,死亡現(xiàn)場(chǎng)離奇詭異仔燕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)魔招,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門晰搀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人办斑,你說(shuō)我怎么就攤上這事外恕。” “怎么了乡翅?”我有些...
    開(kāi)封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵鳞疲,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我峦朗,道長(zhǎng)建丧,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任波势,我火速辦了婚禮翎朱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尺铣。我一直安慰自己拴曲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布凛忿。 她就那樣靜靜地躺著澈灼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪店溢。 梳的紋絲不亂的頭發(fā)上叁熔,一...
    開(kāi)封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音床牧,去河邊找鬼荣回。 笑死,一個(gè)胖子當(dāng)著我的面吹牛戈咳,可吹牛的內(nèi)容都是我干的心软。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼著蛙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼删铃!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起踏堡,我...
    開(kāi)封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猎唁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后顷蟆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胖秒,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缎患,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了阎肝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肮街,死狀恐怖风题,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嫉父,我是刑警寧澤沛硅,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站绕辖,受9級(jí)特大地震影響摇肌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仪际,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一围小、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧树碱,春花似錦肯适、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至赎婚,卻和暖如春刘绣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挣输。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工纬凤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歧焦。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓移斩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親绢馍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子向瓷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 本筆記基于React官方文檔,當(dāng)前React版本號(hào)為15.4.0舰涌。 1. 安裝 1.1 嘗試 開(kāi)始之前可以先去co...
    Awey閱讀 7,658評(píng)論 14 128
  • HTML模版 之后出現(xiàn)的React代碼嵌套入模版中猖任。 1. Hello world 這段代碼將一個(gè)一級(jí)標(biāo)題插入到指...
    ryanho84閱讀 6,221評(píng)論 0 9
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,749評(píng)論 25 707
  • 有生之年 感恩言語(yǔ)若埋心底 時(shí)間久了 欲言又止仿佛與生俱來(lái) 或許以詩(shī)繪心 亦或奏曲訴意 方能一道情衷 曾謝過(guò)遠(yuǎn)方與...
    夢(mèng)書客閱讀 540評(píng)論 3 4
  • 快船隊(duì)主教練最近表示,他不想聽(tīng)到任何快船重建的消息长搀,也不想重建宇弛。然而,根據(jù)多家消息源所說(shuō)源请,球隊(duì)管理層和他的意見(jiàn)相左...
    Sandy體育風(fēng)云閱讀 240評(píng)論 0 0