React μνκ΄λ¦¬
βοΈ Today I Learned
1. React μνκ΄λ¦¬
1-1. νλ‘ νΈμλ κ°λ°μμμ μν κ΄λ¦¬
-
μ°μ μνλ μ»΄ν¬λνΈ λ΄λΆμμ λ³νλλ κ°μ΄λ€.
νΉλ³ν νλ‘ νΈμλ μμμμλ βλμ μΌλ‘ ννλλ λ°μ΄ν°βλΌ λΆλ₯Ό μ μλ€.
-
μ°λ¦¬λ μ»΄ν¬λνΈ μ°μ κ°λ° λ°©μμ λν΄μ νμ΅νμλ€.
21.09.07 κ²μκΈ μ°Έμ‘°
νν₯μ λ°μ΄ν° νλ¦μ λ°λΌ
props
λ₯Ό μ΄μ©ν΄μ λ°μ΄ν°λ₯Ό μ λ¬νλ©° μ΄λ λ¨λ°©ν₯ λ°μ΄ν° νλ¦μ΄λ€.λ°λΌμ μ΄ βμνβμ μμΉκ° λ§€μ° μ€μνλ€. μ°μ Javascriptλ₯Ό μ²μ λ°°μΈ λ μ²λΌ μ μ λ³μμ μ§μ λ³μμ μ²λΌ μκ°μ ν΄λ³΄μ.
λ‘컬 μνλ νΉμ μ»΄ν¬λνΈ μμμλ§ κ΄λ¦¬λλ μνμ΄λ©°, μ μ μνλ νλ‘λνΈ μ 체 νΉμ μ¬λ¬κ°μ§ μ»΄ν¬λνΈκ° λμμ κ΄λ¦¬νλ μνμ΄λ€.
λ‘컬 μνλ₯Ό ꡬλΆνλ κ²μ κ°λ¨νλ€. λ³΄ν΅ μ»΄ν¬λνΈ λ΄μμλ§ μν₯μ λΌμ§λ μνλ λ‘컬 μνλ₯Ό λ»νλ€. κ·ΈλΌ μ μ μνλ λ€λ₯Έ μ»΄ν¬λνΈμ μνλ₯Ό 곡μ νκ³ μν₯μ λΌμΉλ μνλ₯Ό μλ―Έν κ²μ΄λ€.
μ μ μνλΌλ λ§μ μλ‘ λ€λ₯Έ μ»΄ν¬λνΈκ° λμΌν μνλ₯Ό λ€λ£¬λ€λ λ»μ΄λ€. λ§μ½ μ΄λ¬ν μν©μ΄λΌλ©΄, μ΄ μΆμ²λ μ€μ§ ν κ³³μ΄μ΄μΌ νλ€. λ§μΌ μ¬λ³Έμ΄ μμ κ²½μ°, λ λ°μ΄ν°λ μλ‘ λκΈ°ν(sync)νλ κ³Όμ μ΄ νμνλ°, μ΄λ λ¬Έμ λ₯Ό μ΄λ ΅κ² λ§λ€κ² λλ€. 리μ‘νΈμμλ ν κ³³μ μ»΄ν¬λνΈμμλ§ μνλ₯Ό μ μ₯νκ³ μ κ·Όνλκ² λ°μ΄ν°λ₯Ό ν¨κ³Όμ μ΄κ³ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ λ°©μμ΄λ€.
μ΄λ₯Ό λ€λ₯΄κ² λ§νμλ©΄ βλ°μ΄ν° 무결μ±μ μν΄, λμΌν λ°μ΄ν°λ νμ κ°μ κ³³μμ λ°μ΄ν°λ₯Ό κ°μ§κ³ μ€λλ‘ ν΄μΌλ§ νλ€β μ΄λ€.
Single source of truth(μ λ’°ν μ μλ λ¨μΌ μΆμ²) μμΉμ νλ‘ νΈμλ λΏλ§ μλλΌ λ€μν κ³³μμ μΈκΈλλ μμΉμ΄λ€.
1-2. μν κ΄λ¦¬λ₯Ό μν κ°μ’ ν΄
-
μν κ΄λ¦¬μ λν΄ μ λ°μ μΌλ‘ μμ보μλ€.
μμμ λ§νλ―μ΄ μνλ₯Ό μ μμνλ‘ κ΄λ¦¬νλ λ°©μμ λ°μ΄ν° 무결μ±μ μν΄ λμΌν μ»΄ν¬λνΈμμ κ΄λ¦¬ν΄μΌνλ€. λ€λ₯Έ μ»΄ν¬λνΈμμ μ΄ μ μμνμ μ κ·Όνλ €λ©΄
props
λ‘ λ°μ΄ν°λ₯Ό μ λ¬ν΄μ£Όμ΄μΌλ§ νμ μ»΄ν¬λνΈμμλ μ΄ μ μμνλ₯Ό μ¬μ©ν μ μλ€. μ΄ κ³Όμ μ΄ μ»΄ν¬λνΈμ κ³μΈ΅ λ¨κ³κ° λ§μ κ³μΈ΅μΌλ‘ μ΄λ£¨μ΄μ Έμλ€λ©΄ λ§€μ° λΆνΈν κ²μ΄λ€.κ·Έλ¬ν λΆνΈν¨μ ν΄μνκΈ° μν΄ μ΄λ₯Ό λμμ£Όλ κ°μ’ ν΄λ€μ΄ μλ€. ν΄λΉ ν΄λ€μ μ¬μ©ν¨μΌλ‘μ¨ μ»λ μ΄μ μ λ€μκ³Ό κ°λ€.
-
첫λ²μ§Έλ‘λ μμ κΎΈμ€ν μΈκΈν μ μ μνλ₯Ό μν μ μ₯μλ₯Ό μ κ³΅ν΄ μ€λ€.
-
λ€μμ,
props drilling
λ¬Έμ λ₯Ό ν΄κ²° ν΄μ€λ€. 첫λ²μ§Έ μ΄μ μ μ°μ₯μ μ΄λ€. μμμ μΈκΈν κ³μΈ΅ ꡬ쑰μμprops
λ‘ λ°μ΄ν°λ₯Ό μ λ¬ν΄μ£Όλ κ³Όμ μ μλ΅ν μ μκ² λλ€.
-
-
βμν κ΄λ¦¬ ν΄μ΄ λ°λμ νμν κΉμ?β λΌλ μ§λ¬Έμλ βμλλλ€β λΌλ λ΅λ³μ ν μ μλ€.
μν κ΄λ¦¬ ν΄μ΄ μμ΄λ μΆ©λΆν κ·λͺ¨μλ μ ν리μΌμ΄μ μ λ§λ€ μλ μλ€. κ·Έλ¬λ―λ‘ μ₯λ¨μ μ λΆλͺ ν μΈμ§νκ³ μν κ΄λ¦¬ ν΄μ μ¨μΌνλ€.
κ·Έλ¦¬κ³ μν κ΄λ¦¬μ κΈ°λ³ΈκΈ°λΌκ³ λ³Ό μ μλ βμνκ° μ΄λμ μμΉν΄μΌ νλμ§β λΌλ κ°λ μ μΈμ§νλκ² μ°μ μ΄ λμ΄μΌ νλ€.
1-3. Redux
-
Reactμμλ μνμ μμ±(props)μ μ΄μ©ν μ»΄ν¬λνΈ λ¨μ κ°λ° μν€ν μ²λ₯Ό λ°°μ λ€λ©΄, Reduxμμλ μ»΄ν¬λνΈμ μνλ₯Ό λΆλ¦¬νμ¬ κ΄λ¦¬νλ€. μν λ³κ²½ λ‘μ§μ μ»΄ν¬λνΈλ‘λΆν° λΆλ¦¬νλ©΄, ννμ μ§μ€ν λ³΄λ€ λ¨μν ν¨μ μ»΄ν¬λνΈλ₯Ό λ§λ€ μ μκ² λλ€.
λ¨μν λ§νμλ©΄ Reactμμλ μνλ₯Ό
Store
λΌλ λ³λμ μ€μ§νλλΏμΈ μ₯μμμ κ΄λ¦¬νκ²λλ©°, ν΄λΉ μ₯μμμ μνλ₯Ό κ΄λ¦¬νκ² λλ€.κ·Έλ λ€λ©΄ ν΄λΉ μνλ€μ μ΄λ»κ² λ³κ²½ν΄μΌν κΉ? κ°λ¨ν λ§νμλ©΄
Action
μ ν΅ν΄μ λ³νλ₯Ό κ°μ§νλ©°,Dispatch
λ©μλλ₯Ό ν΅νμ¬Action
μ μ λ¬νλ€.Store
μ λ€μ΄κ°κΈ°μ Reducer
λ₯Ό κ±°μ³μ νμ¬μ μν(State)μ μ λ¬λ μ‘μ μ΄ κ²°ν©λμ΄ μλ‘μ΄ μνλ‘ λ³κ²½λκ² λλ€.μ μ 리λ λΈλ‘κ·Έκ° μμ΄μ ν΄λΉ λ§ν¬ μ°Έμ‘°λ‘ Redux μ€λͺ μ λ체νκ² λ€.
1-4. Cmarket (Hooks λ²μ )
-
μ»΄ν¬λνΈ κ΅¬μ‘°λ₯Ό κ°μνμ¬ μνμ μμΉλ₯Ό κ³ λ €νμ¬ μ½λ©νμλ€.
-
μ μμν(
items
,cartItems
)λ μ΅μλ¨ μ»΄ν¬λνΈ App μ»΄ν¬λνΈμμ κ΄λ¦¬. -
Item μ»΄ν¬λνΈμμ
items
μνλ₯Ό λ€λ£¨κΈ° μν΄μλ App - ItemListContainer - Item μ»΄ν¬λνΈκΉμ§ μνλ₯Ό λ΄λ €μ€μΌ νλprops drilling
νμ λ°μ
-
μ°Έμ‘° : Github λ§ν¬
1-5. Cmarket (Redux λ²μ )
μ°Έμ‘° : Github λ§ν¬
π€ Understanding
-
리μ‘νΈ μν κ΄λ¦¬μ λν΄ μ§μ€μ μΌλ‘ νμ΅νλ€.
μ°μ μ μ μνλΌλ κ°λ μ΄ μ°Έ μλΏμλ€.
μ무λλ μ§μ μνλ‘ κ΄λ¦¬λ
state
λ€μ μ»΄ν¬λνΈλ₯Ό λλλ€ μλ‘props
λ‘ μ λ¬μ ν΄μΌνλ―λ‘ λΆνΈν건 μ¬μ€μ΄λ.. -
κ·Έλλ μ°μ κΈ°λ³ΈκΈ°μΈ μνκ΄λ¦¬λ₯Ό μΆ©λΆν νμ΅ν λ€ μ κ·Όν΄μΌκ² λ€!