โ ๏ธ ์ ๋ฆฌํ ๋ด์ฉ์ ์คํ๋ ์๋ชป๋ ์ ๋ณด๊ฐ ์์ ์ ์์ต๋๋ค. ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
Fragments๋ DOM์ ๋ณ๋์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ์ฌ๋ฌ ์์์ ๊ทธ๋ฃนํํ ์ ์๋ค.
render() {
return (
<React.Fragment>
<ChildA />
<ChildB />
<ChildC />
</React.Fragment>
);
}
<React.Fragment>
๋ฅผ <>
๋จ์ถ ๋ฌธ๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
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>
);
}
}
์ด๋ฐ ๋ฌธ์ ๋ฅผ Fragments๋ ์๋์ฒ๋ผ ํด๊ฒฐํด์ค๋ค.
class Columns extends React.Component {
render() {
return (
<React.Fragment>
<td>Hello</td>
<td>World</td>
</React.Fragment>
);
}
}
๋น ํ๊ทธ์ฒ๋ผ Fragments๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
key
ย ๋๋ ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋นผ๊ณ ๋ค๋ฅธ ์๋ฆฌ๋จผํธ์ฒ๋ผย <></>
์ ์ฌ์ฉํ ์ ์๋ค.****
Fragments์ย key
๊ฐ ์๋ค๋ฉดย <React.Fragment>
ย ๋ฌธ๋ฒ์ผ๋ก ๋ช
์์ ์ผ๋ก ์ ์ธํด์ผ ํ๋ค.
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
์ ์ ๋ฌํ ์ ์๋ ์ ์ผํ ์ดํธ๋ฆฌ๋ทฐํธ์ด๋ค.
fragments
๋ ์ ๋ง ์์ฃผ ์ฐ์ด๊ณ ๊ทธ๋์ ๋ง์ด ์ฌ์ฉํด๋ณด์๊ธฐ ๋๋ฌธ์ ์ต์ํ์๋ค.