리ν©ν λ§ | μ»΄ν¬λνΈ ννλ‘ μΆμννκΈ°
νλ‘κ·Έλλ¨Έμ€ λΈλ‘κ·Έμ μλ ν΄μ€ κΈμ μ°Έκ³ ν΄ λ¦¬ν©ν λ§ν λ΄μ©
μνμ λ°λΌ λ°λμ΄μΌ νλ μμμ΄ ν¬κ² λ κ°μ§λ€. Nodesμ Breadcrumb!
리ν©ν λ§ μ
App μ»΄ν¬λνΈ λ΄μμ renderNodesSection
μ renderBreadcrumbSection
ν¨μλ₯Ό μμ±νλ€. κ° ν¨μ λ΄μμ, μνλ₯Ό κΈ°λ°μΌλ‘ λ§ν¬μ
μ λ λλ§νλ€. μνκ° λ³κ²½λλ©΄ ν΄λΉ ν¨μλ€μ νΈμΆν΄ μ
λ°μ΄νΈλ μνλ‘ νλ©΄μ λ λλ§νλ€.
ꡬν 쑰건 λ° νλ‘κ·Έλλ¨Έμ€ λΈλ‘κ·Έμμ μ μν λ°λμ§ν λ°©ν₯μ λ€μκ³Ό κ°μλ€.
- μ»΄ν¬λνΈ ννλ‘ μΆμν
- DOM μ κ·Όμ μ΅μν
- λͺ λ Ήν νλ‘κ·Έλλ°λ³΄λ€λ μ μΈμ νλ‘κ·Έλλ°
μ»΄ν¬λνΈ ννλ‘ μΆμννκΈ°
'μ»΄ν¬λνΈ ννλ‘ μΆμν νλΌ'λ κ² μ΄λ€ μλ―ΈμΈμ§ μ μλΏμ§ μμλ€. κ²μν΄ λ³Έ κ²°κ³Ό μΆμνλ 볡μ‘ν μλ£, λͺ¨λ, μμ€ν λ±μΌλ‘λΆν° ν΅μ¬μ μΈ κ°λ λλ κΈ°λ₯μ κ°μΆλ € λ΄λ κ²μ μλ―Ένλ€. μ»΄ν¬λνΈλ μ¬μ¬μ©μ΄ κ°λ₯ν κ°κ°μ λ 립λ λͺ¨λμ μλ―Ένλ€.
κ·Έλ λ€λ©΄ μ»΄ν¬λνΈ ννμ μΆμνλ μ 체 Appμμ νΉμ κΈ°λ₯μ μ¬μ¬μ©μ΄ κ°λ₯ν λ 립λ λͺ¨λλ‘ κ°μΆλ €λ΄λ κ²μ΄κ² λ€.
λ΄κ° μ΄ν΄ν λͺ¨λμ λ€μκ³Ό κ°μ λλμ΄λ€.
λͺ¨λμ μ¬μ©νλ μ μ₯μμλ λͺ¨λμ λ΄λΆ μλ μ리λ₯Ό μ νμκ° μλ€. κ·Έμ μ΄λ»κ² μ¬μ©νλμ§μ, ν΄λΉ λͺ¨λμ΄ μ΄λ€ κΈ°λ₯μ μννλμ§(λͺ¨λμ΄ λ§λ€μ΄ λ΄λ κ²°κ³Όλ¬Ό)λ§ μλ©΄ λλ€. → μ΄λ₯Ό λ§μ‘±νκ²λ νΉμ κΈ°λ₯μ λΆλ¦¬ν΄ λ΄λ κ² λͺ¨λν μλκΉ?
λͺ λ Ήν νλ‘κ·Έλλ° v.s. μ μΈμ νλ‘κ·Έλλ°
μ΄ κ°λ λν μ μ΄ν΄κ° λμ§ μμ μ°Ύμλ΄€λ€.
"λλ μ§κΈ eλ§νΈ λ°λ‘ μμ μμ΅λλ€. κ·ΈλΌ μ¬κΈ°μλΆν° μ§κΉμ§ μ΄λ»κ² κ°μΌ ν κΉμ?"
λͺ λ Ήν λ°©μ (HOW) : μ£Όμ°¨μ₯ λΆμͺ½ μΆκ΅¬λ₯Ό λμ μΌμͺ½μΌλ‘ κ°μΈμ. 12λ²κ° μΆκ΅¬μ λμ°©ν λκΉμ§ 15λ² λΆμͺ½ λλ‘λ₯Ό νμΈμ. μ΄μΌμλ₯Ό λΌκ³ μ°νμ νμΈμ. μ§μ§νμ¬ μ²« λ²μ§Έ μ νΈλ±μμ μ°νμ νμΈμ. λ€μ μ νΈλ±μ μ§λ μ’νμ μ νμΈμ. μ°λ¦¬ μ§μ 298μ λλ€.
μ μΈν λ°©μ (WHAT): λ΄ μ£Όμλ 98 West Immutable Alley, Eden, Utah 84310μ λλ€.
μ μΈμ λ°©μ: 무μμ μννλμ§μλ§ κ΄μ¬μ΄ μλ€. κ·Έ 무μμ΄ μ νν μ΄λ»κ² μ΄λ€μ§λ μ§μλ κ΄μ¬μ΄ μλ€. λ§μΉ λΈλλ°μ€μ²λΌ, λ inputμ μ€ν λ λλ λ΄κ° μνλ outputμ λ΄λκΈ°λ§ νλ©΄ λΌ.
λ°λΌμ μ»΄ν¬λνΈ λ¨μλ‘ λΆλ¦¬νλ ν¨ν΄μ μ μΈμ λ°©μμ΄λΌκ³ ν μ μλ€. κ°λ Ή ν UI μ»΄ν¬λνΈκ° μλ€λ©΄, μ°λ¦¬λ κ·Έ μ»΄ν¬λνΈμ stateλ₯Ό λκ²¨μ£Όκ³ (κ·Έ μμ κ³Όμ μ΄ μ΄λ»κ² λλ ) ν΄λΉ μ»΄ν¬λνΈκ° κ·Έ stateλ₯Ό κ°μ§κ³ μ°λ¦¬κ° μνλ UIλ₯Ό λ λλ§νκΈ°λ₯Ό κΈ°λν κ²μ΄λ€.
κ·Έ μΈμλ μ μΈμ λ°©μμ λ€μκ³Ό κ°μ νΉμ§μ κ°λλ€.
- μ μΈμ λ°©μμ μ½λκ° λ¬μ±νκ³ μ νλ κ² λ¬΄μμΈμ§λ§μ λμ΄νκΈ° λλ¬Έμ, μ½λμ μ¬μ¬μ©μ±μ΄ λλ€.
(μμΈν ꡬν λ°©μμ΄ λ¬λΌμ§μ§ μμΌλ―λ‘) - μ μΈμ λ°©μμ μνλ₯Ό μ§μ μμ νμ§ μλλ€.
- κ°λ μ±μ΄ μ’λ€ = μ½λ ν μ€ ν μ€μ μ½μ§ μμλ ν΄λΉ μ½λκ° μ΄λ€ κΈ°λ₯μ νλ μ½λμΈμ§ νμ ν μ μλ€.
map ν¨μκ° λνμ μΈ μ μΈμ λ°©μμ ν΄λΉνλ€κ³ λ³Ό μ μλ€.
- λͺ λ Ήν λ°©μ
function double (arr) {
let results = []
for (let i = 0; i < arr.length; i++){
results.push(arr[i] * 2) // μνλ₯Ό μ§μ μμ νλ€.
}
return results
}
- μ μΈν λ°©μ
function double (arr) {
return arr.map((item) => item * 2) // μνλ₯Ό μ§μ μμ νμ§ μλλ€.
}
λ¬Όλ‘ , μ μΈν λ°©μμ΄ μ λλ‘ λμνκΈ° μν΄μλ λͺ λ ΉνμΌλ‘ "μ΄λ»κ²"κ° κ΅¬νλ κ²λ€μ΄ μΆμνλμ΄ μμ΄μΌ νλ€. map ν¨μλ λͺ λ Ήν ꡬνμ μΆμνν λνμ μΈ ν¨μλΌκ³ ν μ μλ€. μ»΄ν¬λνΈ λ¨μμ μΆμν λν λΉμ·ν μλ―ΈμΈ κ²μΌλ‘ νμ λλ€. μ»΄ν¬λνΈ λ΄λΆμ "μ΄λ»κ²"λ₯Ό ꡬννκ³ , μ 체 Appμμλ ν΄λΉ μ»΄ν¬λνΈλ₯Ό μ¬μ©ν΄ λͺ λ Ήν νλ‘κ·Έλλ°μ νλ€.
리ν©ν λ§ ν
μνμ λ°λΌ Nodes UIλ₯Ό λ λλ§νλ€. → ν΄λΉ κΈ°λ₯μ Nodes λΌλ μ»΄ν¬λνΈλ‘ μΆμννλ€. setState ν¨μλ₯Ό ν΅ν΄ μ»΄ν¬λνΈμκ² λͺ λ Ήμ λ΄λ¦΄ μ μλ€. λ΄κ° λͺ λ Ήν μνλ₯Ό κΈ°λ°μΌλ‘ UIκ° λ λλ§λλ μΈλΆ κ³Όμ μ λλ μ μ μλ€.
- DOM μ κ·Όμ μ΅μν: DOM μ κ·Όμ΄ μΌμ΄λλ κ²½μ°λ₯Ό λ κ°μ§λ‘ νμ νλ€.
- μ»΄ν¬λνΈκ° μΈμ€ν΄μ€ν λ λ
- render ν¨μκ° μ€νλ λ
- render ν¨μκ° νΈμΆλλ μν© λν λ κ°μ§λ‘ νμ νλ€. μ»΄ν¬λνΈκ° μΈμ€ν΄μ€ν λ λμ μνκ° λ³κ²½λμμ λ! μ΄μ μ½λμμλ DOMμ κ·Όκ³Ό λ λλ§μ΄ μΈμ μΈμ λ°μνλ μ§ μ μ μμλ€.(renderNodesSection ν¨μκ° μ΄λ μ΄λμμ νΈμΆλμλμ§ μΌμΌμ΄ νμΈν΄μΌ νλ€.) μνμ λ³κ²½μ΄λ , UIμ λ³κ²½μ΄λ λͺ¨λ λ³κ²½μ μ΅μνμ νμλ‘ μμ κ°λ₯νκ² λ°μνλ κ² μ’λ€. κ·Έλ° μλ―Έμμ render ν¨μκ° νΈμΆλλ μν©μ νμ νλ κ²μ μ€μνλ€.
λ€μ κΈμμλ μ»΄ν¬λνΈ κ° μμ‘΄μ±μ λν΄ λ€λ€λ³΄μ.