๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Frontend Dev/๐Ÿฅ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE ๋ถ€ํŠธ์บ ํ”„

Section2 Unit6 [React] React State & Props

๋ฐ˜์‘ํ˜•


Section2 Unit6 [React] React State & Props

 

๐Ÿ“Œ Chapter1. React State & Props

๋ฆฌ์•กํŠธ๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„(one-way data flow)์„ ๊ฐ€์ง„๋‹ค. ๋”ฐ๋ผ์„œ React์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค ๊ฐ„์˜ ์ƒํ˜ธ ๊ด€๊ณ„์™€ ๋ฐ์ดํ„ฐ์˜ ์—ญํ• , ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ๊ณ ๋ คํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

• state์™€ props ๋ชจ๋‘ ์ปดํฌ๋„ŒํŠธ์˜ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๋ฌผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 props๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌ๋˜๋Š” ๋ฐ˜๋ฉด state๋Š” ํ•จ์ˆ˜ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋œ๋‹ค.

 ์ฆ‰, props๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์™ธ๋ถ€์ž๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ์ด๊ณ , state๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋‚ด๋ถ€์ž๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ์ด๋‹ค. 

 

• ์ด๋ฒˆ ์ฑ•ํ„ฐ์—์„œ React์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์ธ state์™€ props๋ฅผ ํ•™์Šตํ–ˆ๊ณ , ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•๊ณผ controlled component๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ•™์Šตํ–ˆ๋‹ค.

๋ฆฌ์•กํŠธ์˜ ๊ธฐ๋ณธ์ธ state์™€ props๋Š” ๊ณต์‹๋ฌธ์„œ์™€ ์ด์ „์— ๊ณต๋ถ€ํ–ˆ์—ˆ๋˜ ์ž๋ฃŒ์™€ ์˜ˆ์ œ๋ฅผ ํ™œ์šฉํ•˜๊ณ , ์ด๋ฒˆ์— ํ•™์Šตํ•œ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ ์˜ ์ž๋ฃŒ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋”ฐ๋กœ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

 

 

React state์™€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” useState

๐Ÿ‘พ state๋ž€? • state๋Š” ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’, ์ฆ‰ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. • React ์ปดํฌ๋„ŒํŠธ๋Š” state๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ํ˜ธ์ถœ๋˜๊ณ , ๋ฆฌ๋ Œ๋”๋ง ๋œ๋‹ค. (UI๊ฐ€ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋จ) • state๋Š” props์ฒ˜๋Ÿผ

fay-story.com

 

React ๊ธฐ๋ณธ, props ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿ‘พ props๋ž€? • props๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค. props๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š” immutableํ•œ ๋ฐ์ดํ„ฐ์ด๋‹ค. • props๋Š” ๋ถ€๋ชจ ์ปจํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปจํฌ๋„ŒํŠธ๋กœ ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ ์ž์ฒด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

fay-story.com

 ํŠนํžˆ props๋Š” ๊ณ„์† ํ—ท๊ฐˆ๋ ธ์—ˆ๋Š”๋ฐ, ์ •๋ฆฌํ•˜๋ฉด์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐœ๋…์„ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์„œ ์˜๋ฏธ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค. ๐Ÿ˜Š

 ๋ฆฌ์•กํŠธ์— ๋Œ€ํ•ด ๋” ๊ณต๋ถ€ํ•˜๊ณ  ๋‚˜๋ฉด ๋ฆฌ์•กํŠธ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์— ๋Œ€ํ•œ ์ •๋ฆฌ๋„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 


๐ŸŒ™  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

 ์ฃผ๋ง์ด ์ง€๋‚˜์„œ ๊ทธ๋Ÿฐ์ง€ ํ”ผ๊ณคํ•˜๊ณ  ์ง‘์ค‘๋ ฅ์ด ๋–จ์–ด์ง€๋˜ ์›”์š”์ผ์ด์—ˆ๋‹ค. ์˜ค๋Š˜ ์ •๊ทœ ์ˆ˜์—… ์ดํ›„์— state์™€ props๋ฅผ ๋ณต์Šตํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋Š”๋ฐ, props์˜ ํ—ท๊ฐˆ๋ฆฌ๋˜ ๋ถ€๋ถ„๋“ค์ด ์ฝ”๋“œ๋กœ ์ •๋ฆฌํ•˜๋‹ค ๋ณด๋‹ˆ ์ดํ•ด๊ฐ€ ๋˜์—ˆ๋‹ค. ๋ฆฌ์•กํŠธ๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด props๋Š” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌ๋˜๋Š”๊ฒŒ ๋‹ค์—ฌ์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ •๋ง ๊ฐ„๋‹จํ•œ๊ฑด๋ฐ, ์™œ ์ž๊พธ ์ „๋‹ฌ๋ฐ›๋Š” props๊ฐ€ ํ—ท๊ฐˆ๋ ธ๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๊ณ  console.log๋ฅผ ์ •๋ง ๋งŽ์ด ์ฐ์–ด๋ดค์—ˆ๋‹ค. ๊ธ€๋กœ ๋ณด๋Š” ๊ฒƒ๋ณด๋‹ค ๋ˆˆ์œผ๋กœ ์ง์ ‘ ํ™•์ธํ•˜๋‹ˆ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ด๊ฐ€ ๋˜์–ด์„œ ์˜๋ฏธ์žˆ๋˜ ์‹œ๊ฐ„์ด์—ˆ๋‹ค.

 ๋ฆฌ์•กํŠธ์˜ ๋™์ž‘์›๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ํ๋ฆ„์— ๋Œ€ํ•ด์„œ๋„ ์ข€ ๋” ์ฐพ์•„๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ, ์ง€๊ธˆ ์ฐพ์•„๋ณด๋Š” ์ž๋ฃŒ๋“ค์€ ๋‹ค ๋น„์Šทํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์กฐ๊ธˆ ๋” ๊ณต๋ถ€ํ•œ ํ›„์— ๋‹ค์‹œ ์ฐพ์•„๋ณด๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 ์˜ค๋Š˜ ์˜คํ›„ ๋ผ์ด๋ธŒ ์„ธ์…˜์—์„œ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  ์ˆ˜๋ฃŒ์ƒ์ด์—ˆ๋˜ ํ˜„ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  ๊ฐœ๋ฐœ์ž ๋ถ„์˜ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์—ˆ๋Š”๋ฐ, ์ธ์ƒ๊นŠ์—ˆ๋˜ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค. ๋‚˜๋ฅผ ์Šคํ† ๋ฆฌํ…”๋ง ํ•  ์ˆ˜ ์žˆ๋Š” ‘๋ฌด์–ธ๊ฐ€’๋ฅผ ํ•˜๋‚˜๋Š” ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒŒ ๋งŽ์€ ๋„์›€์ด ๋œ๋‹ค๋Š” ์ด์•ผ๊ธฐ์˜€๋‹ค. ๊ทธ๊ฒŒ ๋ธ”๋กœ๊ทธ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ๋‚˜๋ฅผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š”, ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ด ์ง€๊ธˆ ๋‹น์žฅ์€ ์–ด๋”˜๊ฐ€์— ๊ธฐ๋กํ•ด๋‘˜ ๋งŒํผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜์ง€ ์•Š์„์ง€๋„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ๊ทธ ๊ธฐ๋ก๊ณผ ๊ณ ๋ฏผํ•œ ํ”์ ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๋œป ๊ฐ™์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ง์— ๊ณต๊ฐ์ด ๋˜์—ˆ๋‹ค.

 ์˜ค๋Š˜ ์•ฝ๊ฐ„ ํ”ผ๊ณคํ•˜๊ณ  ๋ฌด๊ธฐ๋ ฅํ•ด์„œ ์ƒํƒœ๊ฐ€ ๋ณ„๋กœ๋ผ ์ˆ˜์—… ๋“ค์„ ๋•Œ๋Š” ์•„, ๊ทธ๋ ‡๊ตฌ๋‚˜ ํ•˜๊ณ  ๋„˜๊ฒผ๋Š”๋ฐ ์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ด๋Ÿฐ ์„ธ์…˜์ด ๋‚˜๋ฆ„ ๋™๊ธฐ๋ถ€์—ฌ๋„ ๋˜๋Š” ๊ฒƒ ๊ฐ™๊ณ , ์†Œ์†๊ฐ๋„ ๋Š๋ผ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

๋ฐ˜์‘ํ˜•