π₯ class
μλ°μ€ν¬λ¦½νΈμμ ν΄λμ€λν¨μμ ν μ’ λ₯μ λλ€.
νΉμλ μλ°μ€ν¬λ¦½νΈμ ν΄λμ€λ₯Ό λ¬Έλ² μ€νμ λΆκ³Όνλ€κ³ λ§νμ§λ§ ν¨μμλ μ€μν μ°¨μ΄κ° λͺ κ°μ§ μμ΅λλ€.
ν΄λμ€λ μμμ μ§μνλextendsμ super ν€μλλ₯Ό μ 곡ν©λλ€. νμ§λ§ μμ±μ ν¨μλ extendsμ super ν€μλλ₯Ό μ§μνμ§ μμ΅λλ€.
ν΄λμ€λνΈμ΄μ€ν μ΄ λ°μνμ§ μλ κ²μ²λΌ λμν©λλ€. νμ§λ§ ν¨μ μ μΈλ¬ΈμΌλ‘ μ μλ μμ±μ ν¨μλ ν¨μ νΈμ΄μ€ν μ΄, ν¨μ ννμμΌλ‘ μ μν μμ±μ ν¨μλ λ³μ νΈμ΄μ€ν μ΄ λ°μν©λλ€.
classλ‘ λ§λ ν¨μμλ νΉμ λ΄λΆ νλ‘νΌν°μΈ [[IsClassConstructor]]: trueκ° λΆμ΅λλ€. λ°λΌμnewμ ν¨κ» νΈμΆνμ§ μμΌλ©΄ μλ¬κ° λ°μν©λλ€.
λν ν΄λμ€μ μ μλ λ©μλλ μ΄κ±°ν μ μμΌλ©°, νμstrict modeλ‘ μ€νλ©λλ€
π₯ ν΄λμ€ν μ»΄ν¬λνΈμ ν¨μν μ»΄ν¬λνΈμ μ°¨μ΄
리μ‘νΈμμ μ»΄ν¬λνΈλ₯Ό λ§λλ λ°©λ²μλ ν΄λμ€ν μ»΄ν¬λνΈ(class components)μ ν¨μν μ»΄ν¬λνΈ(functional components)κ° μμ΅λλ€.
ν΄λμ€ν μ»΄ν¬λνΈλ ES6μ ν΄λμ€(class)λ₯Ό μ¬μ©νμ¬ μ»΄ν¬λνΈλ₯Ό μ μν©λλ€. μ΄ λ°©μμ Reactμ μ»΄ν¬λνΈμ μν(state)μ μλͺ
μ£ΌκΈ°(lifecycle)λ₯Ό λ€λ£° λ λ§€μ° μ μ©ν©λλ€.
λ°λ©΄μ ν¨μν μ»΄ν¬λνΈλ ES6μ νμ΄ν ν¨μ(arrow function)λ₯Ό μ¬μ©νμ¬ μ»΄ν¬λνΈλ₯Ό μ μν©λλ€. μ΄ λ°©μμ ν
(hook) APIμ ν¨κ» λ§μ΄ μ¬μ©λλ©°, μ»΄ν¬λνΈμ μνμ μλͺ
μ£ΌκΈ°λ₯Ό λ€λ£° λλ μ μ©ν©λλ€.
ν΄λμ€ν μ»΄ν¬λνΈμ ν¨μν μ»΄ν¬λνΈμ κ°μ₯ ν° μ°¨μ΄μ μ μνμ μλͺ μ£ΌκΈ°μ λ€λ£¨λ λ°©μμ λλ€. ν΄λμ€ν μ»΄ν¬λνΈλ μνλ₯Ό this.stateλ‘ μ μνκ³ , μλͺ μ£ΌκΈ° λ©μλλ₯Ό μ€λ²λΌμ΄λνμ¬ λ€μν μμ μ μνν©λλ€. λ°λ©΄μ ν¨μν μ»΄ν¬λνΈλ μνλ₯Ό useState ν μ μ¬μ©νμ¬ μ μνκ³ , useEffect ν μ μ¬μ©νμ¬ μλͺ μ£ΌκΈ°λ₯Ό λ€λ£Ήλλ€. λν, ν΄λμ€ν μ»΄ν¬λνΈμμλ this ν€μλλ₯Ό μ¬μ©νμ¬ μνλ λ©μλλ₯Ό μ°Έμ‘°νλ©°, ν¨μν μ»΄ν¬λνΈμμλ this ν€μλλ₯Ό μ¬μ©νμ§ μμ΅λλ€. μ΄λ¬ν μ°¨μ΄μ λλ¬Έμ, ν¨μν μ»΄ν¬λνΈλ λ κ°κ²°νκ³ κ°λ μ±μ΄ μ’μμ§λ©°, ν μ€νΈμ 리ν©ν λ§μ΄ μ½κ² μ΄λ£¨μ΄μ§ μ μμ΅λλ€.
π₯ μ΄ν°λ¬λΈ
Well-known SymbolμΈSymbol.iteratorλ₯Ό νλ‘νΌν° ν€λ‘ μ¬μ©ν λ©μλλ₯Όμ§μ ꡬννκ±°λ νλ‘ν νμ
체μΈμ ν΅ν΄μμ λ°μ Symbol.iterator λ©μλλ₯Ό νΈμΆνλ©΄ μ΄ν°λ μ΄ν° νλ‘ν μ½μ μ€μνμ΄ν°λ μ΄ν°λ₯Ό λ°νν©λλ€. μ΄λ¬ν κ·μ½μμ΄ν°λ¬λΈ νλ‘ν μ½μ΄λΌ νλ©°, μ΄ν°λ¬λΈ νλ‘ν μ½μ μ€μν κ°μ²΄λ₯Ό μ΄ν°λ¬λΈμ΄λΌκ³ ν©λλ€.
μ΄ν°λ¬λΈμ for…ofλ¬ΈμΌλ‘ μνν μ μμΌλ©°μ€νλ λ λ¬Έλ²κ³Ό λ°°μ΄ λμ€νΈλμ²λ§ ν λΉμ λμμΌλ‘ μ¬μ©ν μ μμ΅λλ€.
π₯ μ΄ν°λ μ΄ν°
μ΄ν°λ¬λΈμSymbol.iterator λ©μλλ₯Ό νΈμΆνλ©΄ μ΄ν°λ μ΄ν° νλ‘ν μ½μ μ€μνμ΄ν°λ μ΄ν°λ₯Ό λ°νν©λλ€. μ΄ν°λ μ΄ν°λ next λ©μλλ₯Ό μμ νλ©° next λ©μλλ₯Ό νΈμΆνλ©΄μ΄ν°λ¬λΈμ μννλ©° value, done νλ‘νΌν°λ₯Ό κ°λ μ΄ν°λ μ΄ν° 리μ νΈ κ°μ²΄λ₯Ό λ°νν©λλ€. μ΄λ¬ν κ·μ½μ μ΄ν°λ μ΄ν° νλ‘ν μ½μ΄λΌ νλ©°, μ΄ν°λ μ΄ν° νλ‘ν μ½μ μ€μν κ°μ²΄λ₯Ό μ΄ν°λ μ΄ν°λΌκ³ ν©λλ€.
μ΄ν°λ μ΄ν°λ μ΄ν°λ¬λΈμ μμλ₯Ό νμνκΈ° μν ν¬μΈν° μν μ ν©λλ€.
μ΄ν°λ¬λΈμ Symbol.iterator λ©μλλ₯Ό νΈμΆνλ©΄ μ΄ν°λ μ΄ν° νλ‘ν μ½μ μ€μν μ΄ν°λ μ΄ν°λ₯Ό λ°νν©λλ€.
μ΄ν°λ¬λΈμ Symbol.iterator λ©μλκ° λ°νν μ΄ν°λ μ΄ν°λ next λ©μλλ₯Ό κ°μ΅λλ€.
μ΄ν°λ μ΄ν°μ next λ©μλλ μ΄ν°λ¬λΈμ κ° μμλ₯Ό μννκΈ° μν ν¬μΈν°μ μν μ ν©λλ€.
μ¦,μ΄ν°λ μ΄ν°μ next λ©μλλ₯Ό νΈμΆνλ©΄ μ΄ν°λ¬λΈμμμ°¨μ μΌλ‘ ν λ¨κ³μ© μννλ©° μν κ²°κ³Όλ₯Ό λνλ΄λμ΄ν°λ μ΄ν° 리μ νΈ κ°μ²΄λ₯Ό λ°νν©λλ€.
π₯ μ΄ν°λ¬λΈκ³Ό μ΄ν°λ μ΄ν° μ°¨μ΄
ES6μμ λμ λμ΄ν°λ μ΄μ νλ‘ν μ½μμν κ°λ₯ν λ°μ΄ν° 컬λ μ (μλ£κ΅¬μ‘°)μ λ§λ€κΈ° μν΄ECMAScript μ¬μμ μ μνμ¬ λ―Έλ¦¬ μ½μν κ·μΉμ λλ€.
ES6 μ΄μ μ μν κ°λ₯ν λ°μ΄ν° 컬λ μ
, μ¦, λ°°μ΄, λ¬Έμμ΄, μ μ¬ λ°°μ΄ κ°μ²΄, DOM 컬λ μ
λ±μ ν΅μΌλ κ·μ½μμ΄ κ°μ λλ¦μ ꡬ쑰λ₯Ό κ°μ§κ³ for λ¬Έ, for…inλ¬Έ, forEach λ©μλ λ±λ€μν λ°©λ²μΌλ‘ μνν μ μμμ΅λλ€.
ES6μμλ μν κ°λ₯ν λ°μ΄ν° 컬λ μ
μμ΄ν°λ μ΄μ
νλ‘ν μ½μ μ€μνλ μ΄ν°λ¬λΈλ‘ ν΅μΌνμ¬ for…ofλ¬Έ, μ€νλ λ λ¬Έλ², λ°°μ΄ λμ€νΈλμ²λ§ ν λΉμ λμμΌλ‘ μ¬μ©ν μ μλλ‘μΌμννμ΅λλ€.
μ΄ν°λ μ΄ν°μnext λ©μλκ° λ°ννλ μ΄ν°λ μ΄ν° 리μ νΈ κ°μ²΄μ value νλ‘νΌν°λ νμ¬ μν μ€μΈμ΄ν°λ¬λΈμ κ°μ λνλ΄λ©°done νλ‘νΌν°λ μ΄ν°λ¬λΈμμν μλ£ μ¬λΆλ₯Ό λνλ λλ€.
π₯ μ λλ μ΄ν°
Generatorμ Iteratorλ₯Ό λ°ννλ ν¨μμ
λλ€.
ES6μμ μ λλ μ΄ν° ν¨μκ° λμ
λμ΄ ν¨μμ μΈμμ ν¨μλͺ
μμ λ³ν(*)λ₯Ό λΆμ¬ μ¬μ©ν μ μμ΅λλ€.
λν next() λ©μλλ₯Ό νΈμΆν λλ§λ€ λ°νν κ°μ yield ν€μλλ₯Ό μ¬μ©ν΄ μ§μ ν μ μμ΅λλ€.
π₯ λΌμ΄λΈλ¬λ¦¬
κ°λ°μκ° μννΈμ¨μ΄λ₯Ό κ°λ°ν¨μ μμ΄ μ½λλ₯Ό ꡬννλ κ°λ° μκ°μ μ€μ΄κ³ , μ½λμ μ¬μ¬μ©μ±μ μ¦κ° μν€κΈ° μν΄ μΌλ ¨μ ν΄λμ€ λ¬Άμμ΄λ λΌλ, νμ λΌμ΄λΈλ¬λ¦¬ ννλ‘ μ 곡λλ κ²μ λλ€.
π₯ νλ μμν¬
λΌμ΄λΈλ¬λ¦¬λ κ°λ°μκ° λ§λ ν΄λμ€λ€μ λμ΄λ‘, λ€λ₯Έ νλ‘κ·Έλ¨λ€μμ μ¬μ©ν μ μλλ‘ μ 곡νλ λ°©μμ λλ€.
π₯ λΌμ΄λΈλ¬λ¦¬μ νλ μμν¬ μ°¨μ΄
νλ μμν¬μ λΌμ΄λΈλ¬λ¦¬μ μ°¨μ΄μ μ νλ¦μ λκ° μ§λκ³ μλμ μ°¨μ΄μ
λλ€. νλ μμν¬λ μ 체μ μΈ νλ¦μ μ체μ μΌλ‘ κ°μ§κ³ μμ΄ νλ‘κ·Έλλ¨Έλ κ·Έ μμμ νμν μ½λλ₯Ό μμ±ν©λλ€. λ°λ©΄μ λΌμ΄λΈλ¬λ¦¬λ νλ‘κ·Έλλ¨Έκ° μ 체μ μΈ νλ¦μ κ°μ§κ³ μμ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μμ μ΄ μνλ κΈ°λ₯μ ꡬννκ³ μΆμ λ κ°μ Έλ€ μ¬μ©ν μ μμ΅λλ€.
κ°λ¨ν νλ μμν¬λ κ°μ Έλ€κ° μ¬μ©νλ€λ κ²λ³΄λ€λ νλ μμν¬λΌλ νΉμ 곡κ°μ λ€μ΄κ°μ μ¬μ©νλ€λ λλμ΄ λ κ°νλ€κ³ λ§ν μ μμΌλ©° λΌμ΄λΈλ¬λ¦¬λ λΌμ΄λΈλ¬λ¦¬ μ체λ₯Ό κ°μ Έκ° μ¬μ©νκ³ νΈμΆνλ μ©λλ‘ μ¬μ©λλ€κ³ μκ°νμλ©΄ μ½κ² μ΄ν΄ν μ μμ΅λλ€.
'Elice > Study' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[React] SPA, λΌμ°ν (0) | 2024.03.15 |
---|---|
[JavaScript/React] νλ‘ν νμ (0) | 2024.03.15 |
[React] 리μ‘νΈ λμ μ리 (0) | 2024.03.15 |
[JavaScript] μ€μ½ν (0) | 2024.03.14 |
[JavaScript] λΉλκΈ° (Promise, async, await, JSON) (0) | 2024.03.14 |