home

React Empty Fragment์˜ ์ •์ฒด๋Š”?

๊ธ€ ๋ถ„๋ฅ˜
sub
ํ‚ค์›Œ๋“œ
react query
์ƒ์„ฑ์ผ
2022/05/17 07:27
์ตœ๊ทผ ์ˆ˜์ •์ผ
2023/11/01 23:52
์ž‘์„ฑ์ค‘

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.
๋”๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•ด์ง โ†’ ์กฐ๊ธˆ ์–ต์ง€ ๊ฐ™๊ธดํ•˜์ง€๋งŒ... ๊ฐœ๋ฐœ์ž๋„๊ตฌ์—์„œ ์ข€๋” ํŽธํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ตฌ์šฐ์šฐ์›ƒ?!?!?

์ฐธ์กฐ