State & Props

1. ์˜ˆ์‹œ๋กœ ์ดํ•ดํ•˜๊ธฐ

State

  • ์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉ ์ค‘ ์ปดํฌ๋„ŒํŠธ '๋‚ด๋ถ€'์—์„œ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’

  • ex) ๋‚˜์ด, ์ฃผ์†Œ, ์ทจ์—… ์—ฌ๋ถ€

Props

  • '์™ธ๋ถ€'๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’

  • ex) ์ด๋ฆ„, ์„ฑ๋ณ„

2. Props์˜ ํŠน์ง•

์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ (property)

  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐ€์ง„ (๋ณ€ํ•˜์ง€ ์•Š๋Š”) ์†์„ฑ

๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’

  • React ์ปดํฌ๋„ŒํŠธ๋Š” JavaScript ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค๋กœ,

  • props๋ฅผ ํ•จ์ˆ˜์˜ ์ „๋‹ฌ์ธ์ž์ฒ˜๋Ÿผ ๋ฐ›์•„ โ†’ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” React ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜

  • ๋”ฐ๋ผ์„œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ตœ์ดˆ ๋ Œ๋”๋ง๋  ๋•Œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์€ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๊ฐ์ฒด ํ˜•ํƒœ

  • ์–ด๋–ค ํƒ€์ž…์˜ ๊ฐ’๋„ ๋„ฃ์–ด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Œ

์ฝ๊ธฐ ์ „์šฉ

  • ํ•จ๋ถ€๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์—†๋Š” ์ฝ๊ธฐ์ „์šฉ (read-only)๊ฐ์ฒด

  • ๋งŒ์•ฝ ์ฝ๊ธฐ ์ „์šฉ์ด ์•„๋‹ˆ๋ผ๋ฉด props๋ฅผ ์ „๋‹ฌํ•œ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ ๊ฐ’์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Œ

  • ๋˜ํ•œ ์˜๋„์น˜ ์•Š์€ side effect์ด๋‚˜ React์˜ ๋‹จ๋ฐฉํ–ฅ/ํ•˜ํ–ฅ์‹ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์›์น™์— ์œ„๋ฐฐ๋จ

3.How to use Props

ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’๊ณผ ์†์„ฑ์„ ์ •์˜

props๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •์˜๋œ ๊ฐ’๊ณผ ์†์„ฑ์„ ์ „๋‹ฌ

์ „๋‹ฌ๋ฐ›์€ props๋ฅผ ๋ Œ๋”๋ง

props children

์—ฌ๋Š” ํƒœ๊ทธ์™€ ๋‹ซ๋Š” ํƒœ๊ทธ ์‚ฌ์ด์— value๋ฅผ ๋„ฃ์–ด ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Œ

4. State hook, useState

useState ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ์ž‘๋™ ๋ฐฉ์‹

useState ์ˆ˜๋„์ฝ”๋“œ

useState ๋ฌธ๋ฒ• ์˜ˆ์‹œ

JSX ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ์‹œ

5. State ๊ฐฑ์‹ ํ•˜๊ธฐ

  • ๊ฐฑ์‹ ํ•˜๋ ค๋ฉด state ๋ณ€์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ธ setIsChecked๋ฅผ ํ˜ธ์ถœ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ฒดํฌ๋ฐ•์Šค ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด onchange ์ด๋ฒคํŠธ๊ฐ€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜์ธ handleChecked๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์ด ํ•จ์ˆ˜๊ฐ€ setIsChecked ํ˜ธ์ถœ

  • setIschecked ํ˜ธ์ถœ๋˜๋ฉด ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ isChecked ๋ณ€์ˆ˜ ๊ฐฑ์‹ 

  • React๋Š” ์ƒˆ๋กœ์šด isChecked ๋ณ€์ˆ˜๋ฅผ CheckboxExample ์ปดํฌ๋„ŒํŠธ์— ๋„˜๊ฒจ, ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ ๋‹ค์‹œ ๋ Œ๋”๋ง

6. ์ฃผ์˜์ 

  • React ์ปดํฌ๋„ŒํŠธ๋Š” state๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ํ˜ธ์ถœ๋˜๊ณ , ๋ฆฌ๋ Œ๋”๋ง ๋จ

  • React state๋Š” ์ƒํƒœ ๋ณ€๊ฒฝ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•จ, ๊ฐ•์ œ๋กœ ๋ณ€๊ฒฝ X

7. ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

  • React์—์„œ ์ด๋ฒคํŠธ๋Š” camelCase ์‚ฌ์šฉ

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

onChange

onClick

๋ฒ„ํŠผ์ด๋‚˜ <a> ํƒœ๊ทธ๋ฅผ ํ†ตํ•œ ๋งํฌ ์ด๋™ ๋“ฑ ์‚ฌ์šฉ์ž์˜ ํ–‰๋™์— ๋”ฐ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ˜์‘ํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฒคํŠธ

Last updated