Slack(μ¬λ) μλΉμ€λ₯Ό λ°λΌ λ§λ€λ Reacr Web κ°λ°
β ν΄λΉ κ°μλ₯Ό μκ° ν μμ±ν λ³΅μ΅ λ° κ°μΈ μ€ν°λ κΈ°λ‘μ λλ€.
useCallback
- νΉμ ν¨μλ₯Ό μλ‘ λ§λ€μ§ μκ³ μ¬μ¬μ© ν λ μ¬μ© (리μ‘νΈ λ λλ§ μ±λ₯ μ΅μ νλ₯Ό μν ν
)[] deps
λ°°μ΄μμ μλ μν κ°λ€μ΄ λ³νκ° μμ λλ§μ κ°μ§e.preventDefault()
Form νκ·Έ κΈ°λ³Έ Submit μ΄λ²€νΈ λ§κΈ° (μλ‘κ³ μΉ¨ λ°©μ§)β 컀μ€ν ν μ λ§λ€κΈ° μ μ
value, handler, setValue
λ°ννμ¬ νμν λ°μ΄ν°λ₯Ό μ¬μ©μ λ€λ¦ νμ ? π€
νμ μ κ°μ΄ μ ν΄μ§λ©΄ return κ°λ μλμΌλ‘ μ ν΄μ§λ€.
- νμ μ λ§μΉ ν¨μμ νλΌλ―Έν°μ²λΌ μ¬μ©νλ κ²μ μλ―Έ
<T>
λ₯Ό μΆκ°νλ©°, Tλ₯Ό 맀κ°λ³μμ νμ λλ λ°ν νμ μΌλ‘ μ€μ (T λμ μ λ€λ₯Έ λ¬Έμμ΄μ μ¬μ©ν΄λ λλ€.)
axiox
λ₯Ό μ¬μ©ν΄μ λΉλκΈ° μ²λ¦¬then()
μμ² μ±κ³΅ μ μ€νλλ μ½λ
catch()
μμ² μ€ν¨ μ μ€νλλ μ½λ
finally()
κ²°κ³Όμ κ΄κ³μμ΄ promiseκ° μ²λ¦¬λλ©΄ μ€νλλ μ½λ
API μμ²μ 보λ΄κΈ° μ μ State λ°μ΄ν° κ°μ μ΄κΈ°νν΄μ£Όλ©΄ μΆν μμ²μ λν κ²°κ³Όλ₯Ό μ νν λ°μ λ³Ό μ μλ€.
β CORS μλ¬ ν΄κ²° λ°©λ² β
CORS ? π€
λλ©μΈκ³Ό Api μλ²μ λλ©μΈμ΄ λ¬λΌμ μκΈ°λ λ¬Έμ
μ¦, CORS μλ¬λ μμ² λΈλΌμ°μ μμ λ€λ₯Έ λλ©μΈ(νλ‘ν μ½, ν¬νΈλ²νΈ)μ κ°μ§λ μλ²λ‘ μμ²μ΄ κ°λΒ λΈλΌμ°μ μμ λ°μνλ 보μμ μ± μ΄λ€.
signUpError
νμκ°μ
μ μλ¬κ° λ κ²½μ° μλ²μμ 보λ΄μ£Όλ μλ¬λ©μΈμ§λ₯Ό μΆλ ₯ν μ μλλ‘ λ³μ μ²λ¦¬Link
aνκ·Έ λμ Link νκ·Έλ₯Ό μ¬μ©νμ¬ μλ‘κ³ μΉ¨μ΄ λμ§ μλλ‘ νλ€.
<a>
νκ·Έμ hrefλΒ νμ΄μ§λ₯Ό μ΄λμν¬ λ νμ΄μ§λ₯Ό μλ‘ λΆλ¬μ€κ²λκ³
Reactμμ μ 곡νλ<Link>
νκ·Έλ HTML5 History APIλ₯Ό μ¬μ©νμ¬ λΈλΌμ°μ μ μ£Όμλ₯Ό λ°κΎΌλ€.
SWR ? π€
Nextjs λ‘ μ λͺ ν vercel μμ λ§λ μ격λ°μ΄ν° fetch λ₯Ό μν 컀μ€ν ν npm λͺ¨λ
data
: μμ² μ±κ³΅ μ λ°μμ¨ λ°μ΄ν° (λ°μ΄ν°κ° μμ μ λ‘λ© μ€)
error
: μλ¬ μ λ°μν λ΄κ²¨μ Έ μλ λ°μ΄ν°
ν λ³κ²½μ μμ²μ μλμΌλ‘ λ€μ 보λ΄μ£Όμ΄ μ΅μ μνμ νμ΄μ§λ‘ μ μ§νλ€.
fetcher
μ λ£μ μ£Όμλ₯Ό axios λ₯Ό ν΅ν΄ μμ²νκ³ λ°μμ¨ λ°μ΄ν°λ₯Ό λ°ν μ£Όλ κ³΅ν΅ ν
μμ±
withCredentials
νλ‘ νΈμλμ λ°±μλμ λλ©μΈμ΄ λ€λ₯΄λ©΄ μΏ ν€λ₯Ό μμ±ν΄μ€ μ μμΌλ―λ‘, ν΄λΉ μ΅μ
μ μ€μ νκ²λλ©΄ λλ©μΈμ΄ λ¬λΌλ μΏ ν€κ° μμ±μ΄ λλ€.
revalidate
: μ§μ μν λ μμ² νλ λ°©λ² (λ‘κ·ΈμΈ μ±κ³΅ μ λ°λ‘ μμ²)dedupingInterval
: μνλ μκ°μ μ£ΌκΈ°μ μΌλ‘ μμ² μ€μ λ°©λ²
κ·Έ μΈ λ€μν μ΅μ νμΈ https://swr.vercel.app/ko/docs/options
β return λ¬Έμ νμ ν λ³΄λ€ μλμ μμ΄μΌνλ€.
revalidate
μλ²μ λ€μ μμ²μ 보λ΄μ λ°μ΄ν°λ₯Ό λ€ κ°μ Έμ΄mutate
μλ²μ μμ²μ μ보λ΄κ³ λ°μ΄ν°λ₯Ό μμ (λ°μ΄ν° μμ²μ κΈ°μ‘΄μ κ°μ§κ³ μλ dataλ₯Ό κ°μ Έμ¨λ€.)λκ΄μ μΈ UI, Optimistic UI π€
μλ²μ μμ² μλ΅ μμ΄ λ―Έλ¦¬ κ·Έ κ²°κ³Όλ₯Ό μμΈ‘ν΄μ νλ©΄μ 보μ¬μ£Όλ κ²μΌλ‘ μ¬μ©μ κ²½νμ κΈμ μ μΈ μν₯μ μ€λ€. ex) μΈμ€νκ·Έλ¨ ννΈ ν΄λ¦ μ λ°λ‘ νμ
mutate
Optimistic uiλ₯Ό μ 곡νκΈ° μν΄μλ λ°μ΄ν° λλ²μ§Έ μΈμ κ°μ΄ true μ΄μ¬μΌ νλ€.
dedupingInterval
λͺ μ΄λ§λ€ μ£ΌκΈ°μ μΌλ‘ μ€νμ μ€μ νλ μ΅μ
μ΄μ§λ§, μΊμ μ μ§ κΈ°κ°μΌλ‘ μλ²μ μμ²μ νλ² ν μ±κ³΅ν λ°μ΄ν°λ₯Ό μ μ§νκ³ μκΈ° λλ¬Έμ μ°μμ μΌλ‘ μμ²ν μΌμ΄ μλ€.
λΉλκΈ° μμ²λΏλ§ μλλΌ ν¨μλ‘λ μ¬μ©ν μ μμΌλ©°, μ μ μν κ΄λ¦¬λ‘λ μ¬μ©ν μ μλ€.