TL;DR
โข
์ค์ ๋ก ๋ ๋๋ง๋์ง ์์์ ํ์ํ๋ค.
โข
ํจ์์ return์ ๋๊ฐ๊ฐ ๋ ์ ์๋ค. ํ๋์ ํจ์ return์ ์ํด์ ๊ฒฐ๊ณผ๋ฌผ๋ก ํ๋๋ก ๋ฌถ์ด์ฃผ๋ ์ญํ . ๋ธ๋ผ์ฐ์ ์ ์ค์ ๋ก ๋ ๋๋์ง ์์ผ๋ ๋ ํ์ํ๋ค.
โฝ๏ธ ๋ชฉํ
React Empty Fragment์ ์ ์ฒด๊ฐ ๋ญ์ง ์์๋ณด์ - ์ ํ๋์ ์ปดํฌ๋ํธ๋ ๋ถ๋ชจ element๊ฐ ํ๋๋ง ์์ด์ผ ํ๋๊ฐ?๋ํ Araboza
๋ถ๋ชจ์์๋ ํ๋์ธ ์ด์
JSX
โข
JavaScript XML์ ์ค์๋ง
โข
JSX๋ React.createElement์ Synthetic Sugar โ babel์ด JSX๋ฅผ React.createElement๋ก ํธ๋์คํ์ผ ํด์ค
โข
React.createElement๋ ๋จ ํ๋๋ง์ ์ปดํฌ๋ํธ๋ฅผ ๋ฐํํจ โ ์ฌ๋ฌ๊ฐ์ ์์์์๋ ๊ฐ์ง ์ ์์
// ๊ฐ๋ฐ์๊ฐ ์์ฑํ๋ JSX
function App() {
return (
<div>
<h1>Hello</h1>
</div>
)
}
// Babel๋ก ์ธํด ๋ณ๊ฒฝ๋ JSX
function App() {
return React.createElement(
"div",
null,
React.createElement("h1", null, "Hello")
)
}
JavaScript
๋ณต์ฌ
Fragments ์ด์
โข
React 16.2 ์ ๊น์ง ๋ฌด์กฐ๊ฑด HTML Element(์ฃผ๋ก div ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ)๋ฅผ ์ด์ฉํด์๋ง ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ฌถ์ด์ผ ํ์์ต๋๋ค.
return (
<div>
<ChildA />
<ChildB />
<ChildC />
</div>
);
}
JavaScript
๋ณต์ฌ
Fragment ๋ฑ์ฅ ์ดํ
โข
16.2 ๋ถํฐ React.Fragment๊ฐ ํ์! โ ๋ฌผ๋ก ์ค์ ๋ก div๋ article, section์ด ํ์ํ ๊ฒฝ์ฐ์๋ ์ฌ์ฉํ ์ ์์ผ๋ ํ๋ก์ ํธ ๊ตฌ์กฐ ์ ํ์์์ ๊ฒฝ์ฐ ์ฌ์ฉ๊ฐ๋ฅํด์ก๋ค๋ ๋ป
return (
<React.Fragment> {/* ๊ฐ๋จํ๊ฒ <>๋ก ๋์ฒด ๊ฐ๋ฅ */}
<ChildA />
<ChildB />
<ChildC />
</React.Fragment>
);
}
JavaScript
๋ณต์ฌ
ํน์ง
1.
์ค์ ๋ก ๋ ๋๋ง ๋์ง ์์
โ ์ค์ ๋ก ๋ ๋๋ง ๋์ง ์๋๋ค ๋ผ๋ ์ฌ์ค ๋๋ถ์ 2๋ฒ 3๋ฒ์ ํจ๊ณผ๋ ๋ฐ์ํจ
โ ์ค์ ๋ก ์ถ๊ฐ DOM Node๋ฅผ ์์ฑํ์ง ์์ผ๋ฏ๋ก ์์ฃผ ์ฝ๊ฐ์ ํผํฌ๋จผ์ค ํฅ์์ด ๋ฐ์ํจ(ํฐ ๊ท๋ชจ์ ์ฑ์ด๋ฉด ์ฑ์ผ ์๋ก ๋ ์ข์ ํผํฌ๋จผ์ค ํฅ์)
2.
Flexbox, Grid์ ๊ฐ์ ์ผ์ด์ค์์ ์ถ๊ฐ์ ์ธ ์์
์์ด ์ํํ ์ ์์ โ div ํ๊ทธ๋ก ๊ฐ์๊ฒฝ์ฐ ์๋์น ์๊ฒ ์ ๋ ฌ์ด ์ ์ฉ๋๋ฏ๋ก
3.
๋๊ตฌ์กฐ๊ฐ ๋จ์ํด์ง โ ์กฐ๊ธ ์ต์ง ๊ฐ๊ธดํ์ง๋ง... ๊ฐ๋ฐ์๋๊ตฌ์์ ์ข๋ ํธํ๊ฒ ๋ณผ ์ ์๋ค๊ตฌ์ฐ์ฐ์?!?!?