Fragments
React์์ ์ปดํฌ๋ํธ๊ฐ ์ฌ๋ฌ ์๋ฆฌ๋จผํธ๋ฅผ ๋ฐํํ๋ ๊ฒ์ ํํ ํจํด์ ๋๋ค. Fragments๋ DOM์ ๋ณ๋์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ์ฌ๋ฌ ์์์ ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค.
render() {
  return (
    <React.Fragment>
      <ChildA />
      <ChildB />
      <ChildC />
    </React.Fragment>
  );
}์ด๋ฅผ ์ ์ธํ๋ ์๋ก์ด ๋จ์ถ ๋ฌธ๋ฒ์ด ์์ต๋๋ค.
๋๊ธฐ
์ปดํฌ๋ํธ๊ฐ ์ฌ๋ฌ ์์์ ๋ฐํํ๋ ๊ฒ์ ํํ ํจํด์ ๋๋ค. ๋ค์ React ์์๋ฅผ ๋ณด์ธ์.
class Table extends React.Component {
  render() {
    return (
      <table>
        <tr>
          <Columns />
        </tr>
      </table>
    );
  }
}๋ ๋๋ง ๋ HTML์ด ์ ํจํ๋ ค๋ฉด <Columns />๊ฐ ์ฌ๋ฌ <td> ์๋ฆฌ๋จผํธ๋ง ๋ฐํํด์ผ ํฉ๋๋ค. <Columns />์ render() ์์ ๋ถ๋ชจ div๋ก ์์๋ค์ ๊ฐ์ผ๋ค๋ฉด ๋ ๋๋ง ๋ HTML์ ์ ํจํ์ง ์์ต๋๋ค.
class Columns extends React.Component {
  render() {
    return (
      <div>
        <td>Hello</td>
        <td>World</td>
      </div>
    );
  }
}<Table />์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<table>
  <tr>
    <div>
      <td>Hello</td>
      <td>World</td>
    </div>
  </tr>
</table>Fragments๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ค๋๋ค.
์ฌ์ฉ๋ฒ
class Columns extends React.Component {
  render() {
    return (
      <React.Fragment>        <td>Hello</td>
        <td>World</td>
      </React.Fragment>    );
  }
}์ฌ๋ฐ๋ฅธ <Table />์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ต๋๋ค.
<table>
  <tr>
    <td>Hello</td>
    <td>World</td>
  </tr>
</table>๋จ์ถ ๋ฌธ๋ฒ
Fragments๋ฅผ ์ ์ธํ๋ ๋ ์งง๊ณ ์๋ก์ด ๋ฌธ๋ฒ์ด ์์ต๋๋ค. ๋ง์น ๋น ํ๊ทธ์ ๊ฐ์ต๋๋ค.
class Columns extends React.Component {
  render() {
    return (
      <>        <td>Hello</td>
        <td>World</td>
      </>    );
  }
}key ๋๋ ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋นผ๊ณ  ๋ค๋ฅธ ์๋ฆฌ๋จผํธ์ฒ๋ผ <></>์ ์ฌ์ฉํ  ์ ์์ต๋๋ค.
key๊ฐ ์๋ Fragments
Fragments์ key๊ฐ ์๋ค๋ฉด <React.Fragment> ๋ฌธ๋ฒ์ผ๋ก ๋ช
์์ ์ผ๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ ์ ๋ชฉ๋ก์ ๋ง๋ค๊ธฐ ์ํด ์ปฌ๋ ์
์ fragments ๋ฐฐ์ด๋ก ๋งคํํ๋ ์ฌ์ฉ ์ฌ๋ก์
๋๋ค.
function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // React๋ `key`๊ฐ ์์ผ๋ฉด key warning์ ๋ฐ์ํฉ๋๋ค.
        <React.Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </React.Fragment>
      ))}
    </dl>
  );
}key๋ Fragment์ ์ ๋ฌํ  ์ ์๋ ์ ์ผํ ์ดํธ๋ฆฌ๋ทฐํธ์
๋๋ค. ์ถํ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ๊ฐ์ ์ถ๊ฐ์ ์ธ ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ง์ํ  ์๋ ์์ต๋๋ค.
๋ผ์ด๋ธ ๋ฐ๋ชจ
CodePen์์ ์๋ก์ด JSX fragment ๋ฌธ๋ฒ์ ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๋ค.