Framework/React

[React] return ์‹œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•˜๋‚˜๋กœ ๊ฐ์‹ธ๋Š” ์ด์œ  (+JSX ๋ฌธ๋ฒ•)

yuri lee 2023. 5. 9. 23:29
๋ฐ˜์‘ํ˜•

Intro

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ์‹œ๊ฐ„์—๋Š” React ์—์„œ return ์‹œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•˜๋‚˜๋กœ ๊ฐ์‹ธ๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

Why?

React์—์„œ JSX๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด HTML๊ณผ ์œ ์‚ฌํ•œ ๊ตฌ๋ฌธ์œผ๋กœ JavaScript๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JSX๋Š” JavaScript ํ‘œํ˜„์‹์ด๋ฏ€๋กœ, ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด๋Ÿฌํ•œ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์˜ ๋ฃจํŠธ ์š”์†Œ๋กœ ๋ฌถ์–ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

React์˜ ๊ฐ€์ƒ DOM(virtual DOM)์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ๋ฃจํŠธ ๋…ธ๋“œ๋งŒ์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด React๋Š” ์š”์†Œ๋“ค์„ ๋‹จ์ผ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ ๊ผญ ๋ฌถ์–ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

 

Method

React์—์„œ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€, ์—ฌ๋Ÿฌ ์š”์†Œ๋“ค์„ <div> ๋˜๋Š” <React.Fragment>์™€ ๊ฐ™์€ ๋…ธ๋“œ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์š”์†Œ๋“ค์€ ๊ฐ€์ƒ DOM์—์„œ๋Š” ๋ Œ๋”๋ง๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‹ค์ œ DOM์—๋Š” ์ถ”๊ฐ€์ ์ธ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

Tips

React v16 ์ด์ƒ์—์„œ๋Š” ๋นˆ ํƒœ๊ทธ(<></>)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ React.Fragment ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ๋” ๊ฐ„๊ฒฐํ•ด์ง€๋ฉฐ, ๋ถˆํ•„์š”ํ•œ ๋ž˜ํผ ์š”์†Œ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. React์—์„œ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ๋Š” ์ด๋Ÿฌํ•œ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์˜ ๋ฃจํŠธ ์š”์†Œ๋กœ ๋ฌถ์–ด์ฃผ์–ด์•ผ React๊ฐ€ ์š”์†Œ๋“ค์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ Œ๋”๋งํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•