[React.js] what is React


๋ฆฌ์•กํŠธ ๊ณต์‹ ๋ฌธ์„œ์— ํ™ˆํŽ˜์ด์ง€์— ๊ฐ€๋ฉด ๊ฐ€์ž๋งˆ์ž ๋ฆฌ์•กํŠธ๋Š” ์„ ์–ธํ˜•, ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฆฌ์•กํŠธ์˜ ํŠน์ง•์„ ์•„์ฃผ ์ž˜ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง์ธ ๊ฑฐ ๊ฐ™๋‹ค.

1. ์„ ์–ธํ˜•

js๋งŒ์œผ๋กœ UI๋ฅผ ๋งŒ๋“ค๊ณ  ๋ธŒ๋ผ์šฐ์ €์— ๋‚˜ํƒ€๋‚ด๋ ค๋ฉด ์šฐ๋ฆฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด DOM API๋ฅผ ํ†ตํ•ด ํ•„์š”ํ•œ HTML element๋ฅผ ๋งŒ๋“ ๋‹ค.


document.createElement('div')

๋ฆฌ์•กํŠธ๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ์‹ ๋Œ€์‹  JSX๋ผ๋Š” ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊ทธ๋ฅผ ์ง์ ‘ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰ ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ํ™”๋ฉด์— ์–ด๋–ค UI๊ฐ€ ๊ทธ๋ ค์งˆ์ง€ ์ถฉ๋ถ„ํžˆ ์˜ˆ์ƒ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ด๊ฒƒ์ด ๋ฐ”๋กœ โ€˜์„ ์–ธ์ โ€™์ด๋‹ค.


2. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜

1) Component ๋ฆฌ์•กํŠธ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ปดํฌ๋„ŒํŠธ์ด๊ณ  ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

๋ฆฌ์•กํŠธ์˜ JSX ๋ฌธ๋ฒ•์„ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค๋ฅธ ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ์˜ ๋ถ€๋ถ„์ด ๋˜๊ธฐ๋„ ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์˜ ๊ฐœ๋ฐœ์˜ ์žฅ์ ์€ โ€˜์žฌ์‚ฌ์šฉ์„ฑโ€™์— ์žˆ๋‹ค.

๋˜ํ•œ ์œ ์ง€๋ณด์ˆ˜์—๋„ ์šฉ์ดํ•˜๋‹ค.

๋ฐ”๋กœ ์ด๋Ÿฌํ•œ ๊ฒƒ์ด ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„ ๊ฐœ๋ฐœ์˜ ์žฅ์ ์ด๋‹ค.

2) JSX

JSX๋ž€ ๋ฆฌ์•กํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ์ปค์Šคํ…€ํ•œ ๋ฌธ๋ฒ•์ด๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ• + HTML ๋ฌธ๋ฒ•์˜ ์กฐํ•ฉ์ด๋‹ค.

์ฃผ์˜ํ•  ์ ์€ ๋ชจ๋“  JSX ๋ฌธ๋ฒ• ๋‚ด์—์„œ ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์€ ์ค‘๊ด„ํ˜ธ {} ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฆฌ์•กํŠธ๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์šฐ์„ ์€ JSX ๋ฌธ๋ฒ•์— ์ต์ˆ™ํ•ด์ ธ์•ผํ•œ๋‹ค.

์ด๋Ÿฌํ•œ JSX ๋ฌธ๋ฒ•์˜ ํŠน์ง•์€ โ€˜์„ ์–ธ์ โ€™์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


3) ์—˜๋ฆฌ๋จผํŠธ

Element๋Š” ๋ฆฌ์•กํŠธ์˜ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„.

์ฆ‰ ์—ฌ๋Ÿฌ ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌ์„ฑ.

๋˜ํ•œ ๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด๋‹ค. ํ•œ ๋ฒˆ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด ์ดํ›„์—๋Š” ์—˜๋ฆฌ๋จผํŠธ์˜ ์ž์‹์ด๋‚˜ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

์ด๋Ÿฌํ•œ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ DOM ๋…ธ๋“œ์— ๋ Œ๋”๋ง ํ•˜๋ ค๋ฉด ReactDOM.render() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํ•  ์ˆ˜ ์žˆ๋‹ค.


4. ์ปดํฌ๋„ŒํŠธ

1) ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ

๋ฆฌ์•กํŠธ = ์ปดํฌ๋„ŒํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ๋  ๋งŒํผ ๋ฆฌ์•กํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•จ.

๋ฆฌ์•กํŠธ์˜ ๋ชจ๋“  ๊ฒƒ์€ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋Š” props๋ผ๊ณ  ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ์— ๋งˆ์Œ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

๋ฆฌ์•กํŠธ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์ปดํฌ๋„ŒํŠธ๋กœ ์ž‘์„ฑ๋œ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด JSX ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์™€ ์ž์‹์„ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ์— ๋‹จ์ผ ๊ฐ์ฒด๋กœ ์ „๋‹ฌํ•œ๋‹ค.

๊ทธ ๊ฐ์ฒด๊ฐ€ props์ด๋‹ค.

์ปดํฌ๋„ŒํŠธ๋Š” ํ•ญ์ƒ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•จ์ˆ˜๋ผ๋Š” ๊ฒƒ ์ž์ฒด๋Š” ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋„ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๊ณ ๋ คํ•ด ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ย props๋Š” ์ฝ๊ธฐ ์ „์šฉ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ๋‚˜ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ ๋ชจ๋‘ ์ปดํฌ๋„ŒํŠธ์˜ ์ž์ฒด props๋ฅผ ์ˆ˜์ •ํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

๊ทผ๋ฐ ๋ถ„๋ช… ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์ผ์ด ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค.

์ด๊ฒƒ์„ ๋‹ค์Œ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์˜ state๋ผ๋Š” ์†์„ฑ์„ ํ†ตํ•ด ์ž์œ ์ž์žฌ๋กœ ์ถœ๋ ฅ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด ๋ฆฌ์•กํŠธ์—์„œ๋Š” ๋ฌด์–ธ๊ฐ€ ๋ณ€๋™ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” state๋กœ ๋”ฐ๋กœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ฉฐ

props๋ฅผ ํ†ตํ•ด ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


2) ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์˜ state์™€ ์ƒ๋ช…์ฃผ๊ธฐ

ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ๋Š” React.Component๋ฅผ ์ƒ์†ํ•˜๋„๋ก extends ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์—์„œ render ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๋ฉด ๋ฆฌ์•กํŠธ๋Š”ย state์˜ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธธ ๋•Œ๋งˆ๋‹ค render ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ๋Š” ํ•ญ์ƒ props๋กœ ๊ธฐ๋ณธ constructor๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

์Šคํ…Œ์ดํŠธ๋Š” ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ง์ ‘ ์ˆ˜์ •ํ•ด์„œ๋„ ์•ˆ๋œ๋‹ค ์ง์ ‘ ์ˆ˜์ •ํ•˜๋ฉด ๋ฆฌ์•กํŠธ๊ฐ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค์‹œ ๋ Œ๋”๋ง ํ•˜์ง€ ์•Š๋Š”๋‹ค

๊ทธ ๋Œ€์‹ ์—ย setState ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ˆ˜์ •

์›ํ•˜๋Š” ๋กœ์ง๋Œ€๋กœ ์‹คํ–‰์ด ์•ˆ ๋  ์ˆ˜๋„ ์žˆ๋‹ค.


5. ๋ฆฌ์•กํŠธ์—์„œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌํ•˜๊ธฐ

๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ์—์„œ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์€ DOM ์—˜๋ฆฌ๋จผํŠธ์—์„œ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•˜๋‹ค.

  • ๋ฆฌ์•กํŠธ์˜ ์ด๋ฒคํŠธ๋Š” ์†Œ๋ฌธ์ž ๋Œ€์‹  ์บ๋ฉ€ ์ผ€์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • JSX๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ํ•จ์ˆ˜๋กœ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

  • ๋ฆฌ์•กํŠธ์—์„  ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ preventDefault๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ฐ˜๋“œ์‹œ this ๋ฐ”์ธ๋”ฉ


6.ย React์—์„œ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„๊ณผ State ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ

!๋ฆฌ์•กํŠธ์—์„œ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์€ ๋‹จ๋ฐฉํ–ฅ์ด๋‹ค.

์ฆ‰ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐ›์€ props๋Š” ๋ช‡ ๋ฒˆ์งธ ๋ถ€๋ชจ์—์„œ ๋‚ด๋ ค์˜จ ๊ฑด์ง€ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•จ

state ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ๋ž€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ์˜ ์–ด๋–ค ์ด๋ฒคํŠธ๋‚˜ ๋ฌด์–ธ๊ฐ€์˜ ๋™์ž‘์œผ๋กœ state๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๋ ค๋Š” ๊ฒฝ์šฐ๋‹ค.

ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ props๋ฅผ ํ†ตํ•ด ๋ถ€๋ชจ์—์„œ ์ž‘์„ฑํ•œ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‹คํ–‰์‹œ์ผœย state๋ฅผ ๋ณ€ํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ๊ฐ„๋‹จํ•œ ์•ฑ์˜ ๊ฒฝ์šฐ ํ•˜ํ–ฅ์‹์œผ๋กœ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋Œ€๊ทœ๋ชจ ์•ฑ์€ ๊ทœ๋ชจ๊ฐ€ ์ปค์„œ ์ž‘์€ ๋‹จ์œ„(์ปดํฌ๋„ŒํŠธ)๋ถ€ํ„ฐ ๋งŒ๋“ค๊ณ  ์ ์  ๋” ๊ทœ๋ชจ๋ฅผ ํ‚ค์šฐ๋Š” ์ƒํ–ฅ์‹์œผ๋กœ ์•ฑ์„ ๋งŒ๋“ ๋‹ค.


7. ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง

๊ธฐ์กด์˜ if else ๊ตฌ๋ฌธ, ์‚ผํ•ญ ์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž ๋“ฑ์„ ํ†ตํ•ด ์กฐ๊ฑด์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋‚˜ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ Œ๋” ํ•  ์ˆ˜ ์žˆ๋‹ค


8. ๋ฆฌ์ŠคํŠธ์™€ Key

Key๋Š” React๊ฐ€ ์–ด๋–ค ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œํ• ์ง€ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์„ ๋•๋Š”๋‹ค.

key๋Š” ์—˜๋ฆฌ๋จผํŠธ์— ์•ˆ์ •์ ์ธ ๊ณ ์œ ์„ฑ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ์—˜๋ฆฌ๋จผํŠธ์— ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.

Key๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฆฌ์ŠคํŠธ์˜ ๋‹ค๋ฅธ ํ•ญ๋ชฉ๋“ค ์‚ฌ์ด์—์„œ ํ•ด๋‹น ํ•ญ๋ชฉ์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ์˜ ID๋ฅผ key๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

๋ Œ๋”๋ง ํ•œ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์•ˆ์ •์ ์ธ ID๊ฐ€ ์—†๋‹ค๋ฉด ์ตœํ›„์˜ ์ˆ˜๋‹จ์œผ๋กœ ํ•ญ๋ชฉ์˜ ์ธ๋ฑ์Šค๋ฅผ key๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ย ํ•ญ๋ชฉ์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ key์— ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ด๋กœ ์ธํ•ด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๊ฑฐ๋‚˜ ์ปดํฌ๋„ŒํŠธ์˜ state์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


9. ๋ฆฌ์•กํŠธ๋กœ ์ƒ๊ฐํ•˜๊ธฐ

  1. ์ปดํฌ๋„ŒํŠธํ™” ์‹œ์ž‘. ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋Š” ํ•˜๋‚˜์˜ ์ผ๋งŒ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  2. ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹ค์ œ ๋ Œ๋”๋ง ์‹คํ–‰. (state๋Š” ์ ์šฉ x, props ๋งŒ์„ ์ด์šฉ)

  3. ์ •์ ์ธ ์•ฑ์„ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด ์ด์ œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ state๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์ƒ๊ฐํ•ด์•ผํ•จ.

  4. state๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•˜๋‹ค๋ฉด ์ด์ œ๋Š” state๊ฐ€ ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ์— ์œ„์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€๊ฐ€ ์ค‘์š”.

๊ฐ™์€ ์Šคํ…Œ์ดํŠธ๋ฅผ props์œผ๋กœ ๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์˜ ๊ณตํ†ต์˜ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์— state๊ฐ€ ์œ„์น˜ํ•ด์•ผํ•จ

  1. ์ด๋ฒคํŠธ์— ๋”ฐ๋ผ ์ ์šฉํ•  ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  state ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ๋ฅผ ํ†ตํ•ด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ props๋กœ ๋„˜๊ฒจ์คŒ