React TIL #2

์„ ๋ฏผยท2023๋…„ 10์›” 10์ผ

FrontEnd_TIL

๋ชฉ๋ก ๋ณด๊ธฐ
8/8

๐Ÿ“‚ State & Props

๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ!

State

  • ๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ์ด๋ฉฐ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋™์ ์ธ ๊ฐ’

Props(properties)

  • ์ปดํฌ๋„ŒํŠธ ์†์„ฑ ์„ค์ • ์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ์š”์†Œ
  • ์–ด๋– ํ•œ ๊ฐ’์„ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ์ „๋‹ฌํ•ด์ค˜์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ
  • ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ํšจ์œจ์ 

State๋Š” props์ฒ˜๋Ÿผ App ์ปดํฌ๋„ŒํŠธ์˜ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๋ฌผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ์ฒด์ง€๋งŒ, props๋Š” (ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ฒ˜๋Ÿผ) ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌ๋˜๋Š” ๋ฐ˜๋ฉด state๋Š” (ํ•จ์ˆ˜ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ) ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋œ๋‹ค๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Œ

๐Ÿ“Ž props๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ๋„ state๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ :
์‚ฌ์šฉํ•˜๋Š” ์ชฝ๊ณผ ๊ตฌํ˜„ํ•˜๋Š” ์ชฝ์„ ์ฒ ์ €ํ•˜๊ฒŒ ๋ถ„๋ฆฌ์‹œ์ผœ์„œ ์–‘์ชฝ์˜ ํŽธ์˜์„ฑ์„ ๊ฐ์ž ๋„๋ชจํ•˜๋Š” ๊ฒƒ

โœ”๏ธŽ state๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” hook : useState()


๐Ÿ“‚ UseState()

1. ์‚ฌ์šฉ๋ฒ•

1) import {useState}

2) useState(๋ณด๊ด€ํ•  ์ž๋ฃŒ)

3) let[์ž‘๋ช…, ์ž‘๋ช…]

useState() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • 1๋ฒˆ์งธ ์›์†Œ๋Š” ํ˜„์žฌ ์ƒํƒœ ๊ฐ’ ๋ณ€์ˆ˜
  • 2๋ฒˆ์งธ ์›์†Œ๋Š” ์ƒํƒœ ๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์ฃผ๋Š” Setter ํ•จ์ˆ˜
  • useState ๊ด„ํ˜ธ ์•ˆ์˜ ๊ฐ’์€ ์ƒํƒœ์˜ ์ดˆ๊ธฐ ๊ฐ’

๐Ÿ“‚ UseRef()

ref.current๋Š” value๊ฐ’์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค. {current: value}
์–ธ์ œ๋“  ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ex. ref.current = "hello"

๋ฐ˜ํ™˜๋œ ref๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ „ ์ƒ์• ์ฃผ๊ธฐ๋ฅผ ํ†ตํ‹€์–ด์„œ ์œ ์ง€๊ฐ€ ๋œ๋‹ค.
์ฆ‰, ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ณ„์†ํ•ด์„œ ๋ Œ๋”๋ง๋˜์–ด๋„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ธ๋งˆ์šดํŠธ ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ฐ’์„ ์œ ์ง€ํ•œ๋‹ค.


๐Ÿ“‚ UseEffect()

  • Mount (ํ™”๋ฉด์— ์ฒซ ๋ Œ๋”๋ง)
  • Update (๋‹ค์‹œ ๋ Œ๋”๋ง)
  • Unmount (ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์งˆ๋•Œ)

๐Ÿ“์œ„์˜ ์ƒํ™ฉ๋“ค์—์„œ ํŠน์ • ์ž‘์—…์„ ์‹คํ–‰์‹œ์ผœ ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด useEffect๋ฅผ ์‚ฌ์šฉ!

  • useEffect(()=>{}): ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰
  • useEffect(()=>{}, []):
    [ ] -> ์ฆ‰ dependency์˜ ๊ฐ’์ด ์—…๋ฐ์ดํŠธ ๋  ๋•Œ๋งŒ ์‹คํ–‰.
    ๋งŒ์•ฝ dependency๊ฐ€ ๋นˆ ๋ฐฐ์—ด์ด๋ผ๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ฒ˜์Œ ๋ Œ๋”๋ง ๋  ๋•Œ์—๋งŒ(Mount) ์‹คํ–‰.
profile
์•ˆ๋…•ํ•˜์„ธ์š”๊ฏ

0๊ฐœ์˜ ๋Œ“๊ธ€