TIL - 21.08.02 πŸ‘¨β€πŸ’» - React

μ„±ν›ˆΒ·2021λ…„ 8μ›” 2일
0

TIL

λͺ©λ‘ 보기
44/59
post-thumbnail

TIL - 21.08.02 πŸ‘¨β€πŸ’»

React

ReactλŠ” top-down ν˜•μ‹μ˜ 단방ν–₯ 데이터 흐름을 가지고 μžˆμœΌλ‚˜ state λŒμ–΄μ˜¬λ¦¬κΈ° (Lifting State Up)으둜 λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈμ˜ stateλ₯Ό λ³€κ²½ν•  수 μžˆλ‹€.

이 λŒμ–΄ 올리기의 μš”μ μ€ λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈ λ‚΄μ—μ„œ stateλ₯Ό λ³€κ²½μ‹œν‚€λŠ” ν•¨μˆ˜λ₯Ό λ§Œλ“€κ³  κ·Έ ν•¨μˆ˜λ₯Ό props둜 μžμ‹ μ»΄ν¬λ„ŒνŠΈλ‘œ 전달 ν•˜λŠ” 것이닀.


State νŒλ³„

  • λΆ€λͺ¨λ‘œλΆ€ν„° propsλ₯Ό 톡해 전달 λ˜λŠ”κ°€?
  • μ‹œκ°„μ΄ μ§€λ‚˜λ„ λ³€ν•˜μ§€ μ•ŠλŠ”κ°€?
  • μ»΄ν¬λ„ŒνŠΈ μ•ˆ λ‹€λ₯Έ stateλ‚˜ props둜 계산이 κ°€λŠ₯ν•œκ°€ ?

-> ν•˜λ‚˜λΌλ„ Yes라면 stateλ‘œλŠ” λΆ€μ ν•©ν•˜λ‹€.


Side Effect ( λΆ€μˆ˜νš¨κ³Ό )

  • useEffect Hook -> λ‘λ²ˆμ§Έ 인자 μžλ¦¬μ— μ–΄λ–€ stateκ°€ λ³€ν• λ•Œ Effect Hook의 μ½œλ°±ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•  지정가λŠ₯ κ°€λŠ₯ν•˜λ‹€.
    λ°°μ—΄ ν˜•νƒœλ‘œ λ³€μˆ˜λ₯Ό μš”μ†Œλ₯Ό λ„£μœΌλ©°, 이 λ‘λ²ˆμ§Έ μš”μ†Œλ₯Ό 쒅속성 배열이라 ν•œλ‹€.

  • ν•¨μˆ˜ λ‚΄ μ–΄λ–€ κ΅¬ν˜„μ΄ '외뢀에' 영ν–₯을 미치면 Side Effectκ°€ μžˆλ‹€κ³  ν•œλ‹€.

  • Pure Function
    μˆœμˆ˜ν•¨μˆ˜λŠ” ν•¨μˆ˜μ˜ μž…λ ₯만이 ν•¨μˆ˜μ˜ 결과에 영ν–₯을 μ£ΌλŠ” ν•¨μˆ˜μ΄λ‹€.
    μ–΄λ–€ μ „λ‹¬μΈμžκ°€ 주어지면 항상 같은 값을 λ°˜ν™˜ν•˜κΈ°μ— 예츑 κ°€λŠ₯ν•œ ν•¨μˆ˜μ΄λ‹€.

  • fetch API
    fetchλ₯Ό μ‚¬μš©ν•˜κ³  λ©”μ†Œλ“œλ₯Ό λ”°λ‘œ μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ GET λ©”μ†Œλ“œλ‘œ APIλ₯Ό μ½μ–΄μ˜¨λ‹€.


isLoading

const func1 = ()=>{
  const [isLoading, setIsLoading] = useState(true);
  useEffect(()=>{
  setTimeout(5000, setIsLoading(false))
  },[])
  return <>
    {isLoading ? <div>Loading..</div> : <div> done! </div>}
    </>
}

μ΄λŸ°μ‹μœΌλ‘œ μŠ€ν…Œμ΄νŠΈλ₯Ό μ‚¬μš©ν•΄μ„œ λ‘œλ”©μ€‘μ— λ‘œλ”©μ€‘μ΄λΌλŠ” 것을 κ°€μ‹œμ μœΌλ‘œ λ³΄μ—¬μ£ΌλŠ” 화면을 λ Œλ”ν•  수 μžˆλ‹€.


TO DO πŸ”₯

  • λ¦¬μ•‘νŠΈ 볡슡

Retrospect 🧐

였늘 μ˜€λžœλ§Œμ— λ¦¬μ•‘νŠΈλ₯Ό λ§Œλ‚¬λ‹€.
λ‹€ν–‰νžˆ λΈ”λ‘œκ·Έ ν¬μŠ€νŒ…μ˜ νž˜μΈμ§€ λͺ¨λ₯΄κ² μ§€λ§Œ λŒ€λΆ€λΆ„ 기얡이 λ‚˜μ„œ 였늘 μŠ€ν”Œλ¦°νŠΈμ—μ„œ 큰 어렀움은 μ—†μ—ˆλ‹€.
내일 νŽ˜μ–΄μ‹œκ°„μ— ν•  μŠ€ν”Œλ¦°νŠΈκΉŒμ§€ λλ‚΄λ†¨λŠ”λ°, 내일은 λ°€λ¦° λ¦¬μ•‘νŠΈ λ³΅μŠ΅μ„ λ‹¬λ €λ³ΌκΉŒ 고민쀑이닀.

profile
μ–΄λ–»κ²Œ 이걸 ν’€μ–΄λ‚Ό 수 μžˆμ„κΉŒ

0개의 λŒ“κΈ€