useContext & Provider
Context API
λ§μ μ»΄ν¬λνΈμμ μ¬μ©λλ λ³κ²½μ΄ μ μΌμ΄λμ§ μλ κ°μ λν΄ μ»¨ν μ€νΈ API μ¬μ©μ κ³ λ €
컨ν μ€νΈ API: μ»΄ν¬λνΈ νΈλ¦¬μ λͺ¨λ νμ νΈλ¦¬μ κ°μ μ 곡νκΈ° μν λ°©λ²
컨ν μ€νΈ κ°μ²΄:
React.createContext()
λ‘ μμ±λ¨, νλ‘λ°μ΄λ/μλΉμλ₯Ό ν¬ν¨νλ€.Provider μ»΄ν¬λνΈ: 컨ν μ€νΈλ₯Ό μ 곡νλ©°, νμ μ»΄ν¬λνΈκ° 컨ν μ€νΈ κ°μ ꡬλ ν μ μλλ‘ ν¨
useContext ν : 컨ν μ€νΈ κ°μ μλΉνκΈ° μν ν μΌλ‘, 컨ν μ€νΈ κ°μ²΄λ₯Ό μΈμλ‘ λ°μ νμ¬ μ»¨ν μ€νΈ κ°μ λ°νν¨
λΆνμν 리λ λλ§ λ°©μ§νκΈ°
Context κ°μ μλΉνλ μ»΄ν¬λνΈ μΈμ νμ μ»΄ν¬λνΈλ€μ 리λ λλ§ λμ§ μλλ€.
컀μ€ν μ»΄ν¬λνΈμμ μμ μ»΄ν¬λνΈλ₯Ό 리λ λλ§νμ§ μκ² νκΈ° μν΄ children νλ‘μ μ¬μ©νλΌ.
Provider μ»΄ν¬λνΈκ° νμ μ»΄ν¬λνΈλ€μ children νλ‘νΌν°λ‘ μ κ·Όνμ¬ Provider μ»΄ν¬λνΈ μμμ μνλ₯Ό κ°±μ ν΄λ children νλ‘νΌν°λ λ³κ²½λμ§ μκΈ° λλ¬Έ
childrenμ μ¬μ ν κ°μ κ°μ²΄
Context κ°μ²΄λ‘ λ¬ΆμΈ νλ‘νΌν°λ€μ μ΄ μ€ νλλΌλ λ³κ²½λλ©΄, λ³κ²½λ κ°κ³Ό 무κ΄ν μ»΄ν¬λνΈλ 리λ λλ§ λλ€.
컨ν μ€νΈλ₯Ό μ¬μ©νλ 'λͺ¨λ ' μ»΄ν¬λνΈκ° 리λ λλ§λλ€.
νλ‘λ°μ΄λμ λκΈ°λ 컨ν μ€νΈ κ°(κ°μ²΄)μ΄ λ€μ μμ±λμ΄ ν λΉλκΈ° λλ¬Έ
μ΄λ° μ΄μ λ‘ νλ‘λ°μ΄λ μ»΄ν¬λνΈμ λΆλͺ¨κ° 리λ λλ§λμ΄λ λμΌνκ² λ¦¬λ λλ§λλ€.
μ΄ μ΄μλ useMemoλ‘ μ»¨ν μ€νΈ κ°μ κ°μΈλ©΄ ν΄κ²° κ°λ₯νλ€.
μ¬λ¬ νλ‘λ°μ΄λλ₯Ό ν΅ν΄ 컨ν μ€νΈ κ°μ λΆν νλκ²λ λ°©λ²μ΄λ€.
ν¨κ» μλΉλλ κ°λ€λ‘ λ¬Άμ΄λΌ
ν¨κ» μλΉλλ κ²½μ°κ° λλ¬Έ κ°μ λν΄μλ μ¬λ¬ κ°μ 컨ν μ€νΈλ‘ λΆλ¦¬νλκ²μ κ³ λ €
νλ‘λ°μ΄λ μ€μ²©μ΄ μ¬ν΄μ§λ©΄(wrapper hell) μ¬λ¬ νλ‘λ°μ΄λλ₯Ό ν κ³³μ κ·Έλ£Ήνν΄μ£Όλ 컀μ€ν νλ‘λ°μ΄λλ₯Ό λ§λ€λ©΄ λλ€.
Last updated