React JS
μ κ°μ λ (Virtual DOM) μ΄ λΉ λ₯Έμ΄μ
DOM ꡬ쑰μμ Node λ³κ²½μ μ΄ μκΈ°λ©΄ λ μ΄μμμ λ§λ€κ³ νμΈν
μ νλ κ³Όμ μμ 리μμ€κ° λ°μλλ€.
λ§μ½ 30κ°μ λ
Έλκ° λ°λλ€κ³ κ°μ νλ©΄ 30λ²μ (μ μ¬μ μΈ) λ μ΄μμ μ¬κ³μ°κ³Ό 30λ²μ 리λλλ§μ μ΄λνλκ²μ΄λ€.
μ΄λ React λ₯Ό μ¬μ©νμλ DOM μ‘°μμ΄ μ΅μ’
μ μΈ κ²°κ³Όλ¬Όλ§ λ°μλκΈ° λλ¬Έμ λͺ¨λ λ³νλ₯Ό νλλ‘λ§ λ¬Άμ΄μ λ³ν μν€λ κ²μ΄λ€.
μ¦ λΈλΌμ°μ κ° μ°μ°νλ νμλ₯Ό μ€μ΄λλ° μ§μ€ νλ€.
λ¬Όλ‘ μ΅μ’
κ²°κ³Ό κ°λ§ λ³κ²½λκΈ° λλ¬Έμ κΆμ΄ Virtual DOM μ μ¬μ©νμ§ μμλ λ³νλ₯Ό λ¬Άμ΄μ DOM μ λ°μ μμΌ μ£Όλ©΄ λμ§λ§
Virtual DOM μ DOM fragment λ₯Ό κ΄λ¦¬νλ κ³Όμ μ μλμΌλ‘ νλνλ μμ
ν νμμμ΄ μλν νκ³ μΆμννλκ² μ μλ€.
μ΄λ¬ν λΆλΆλ€μ μλν ν΄μ£Όλ νΈμλ₯Ό μ 곡νκΈ° λλ¬Έμ μΆ©λΆν 맀λ ₯μ μ΄κ³ κ°λ ₯ν λ·° λΌμ΄λΈλ¬λ¦¬μΈ κ²μ΄λ€.
κ° μ»΄ν¬λνΈκ° DOM μ‘°μμ μμ²ν λ λ€λ₯Έ μ»΄ν¬λνΈλ€κ³Ό μνΈμμ©νμ§ μμλ λλ©°, νΉμ DOM μ μ‘°μν κ²μ΄λΌλμ§, νΉμ μ΄λ―Έ μ‘°μνλ€λμ§μ λν 곡μ λ₯Ό ν νμκ° μλ€.
μ¦ κ°κ°μ λ³νλ€μ λκΈ°ν μμ μ κ±°μΉμ§ μμΌλ©΄μ νλμ μμ μΌλ‘ λ¬Άμμ μλκ²μ΄λ€.
νλ²μ μνλ³κ²½μΌλ‘ κ°μνν DOM μμ μΌκ΄μ μΌλ‘ μ μ©νκ³ μ§μ§ λκ³Ό λΉκ΅ν΄μ λ³κ²½λ λΆλΆμ νλ²μ μ μ©μν€λ λ°©λ²μΌλ‘ DOM λλλ§ νμλ₯Ό μ€μ΄κ² λλ€.
μ°Έκ³ μλ£
https://velopert.com/3236
https://okky.kr/article/395781
https://blog.hanumoka.net/2018/08/15/web-20180815-web-virtual-dom/
super()
Class Constructor μμ μ»΄ν¬λνΈ μμμ μμ±μ (constructor) λ₯Ό μ€ννλ©΄ λ°λμ super()
λ₯Ό μ€νν΄μΌ νλ€.
μμ±μ (constructor) λ₯Ό μ¬μ©νμ§ μμΌλ©΄ μλμΌλ‘ μ€νν΄μ€λ€.
μ΄λ this
κ°μ²΄λ₯Ό μ΄κΈ°ν ν΄μ£Όμ§ μκΈ° λλ¬Έμ΄λ€.
class Myclass extends React.Component {
constructor() {
console.log(this); // Error : 'this' is not allowed before
super();
}
}
μμ κ°μ΄ super()
μ€ν΄ μ΄μ μ this
λ₯Ό μ°Έμ‘°νλ©΄ νμ©λμ§ μλλ€.
super()
λ₯Ό νΈμΆν λ props
μΈμλ₯Ό λ겨주면 constructor μμμ this.props
λ₯Ό μ κ·Ό κ°λ₯νκ² κ΅¬μ±ν΄μ€λ€.
class Myclass extends React.Component {
constructor(props) {
super(props);
}
}
μμ κ°μ΄ μ¬μ©ν΄μΌ μ μμ μΌλ‘ this.props
μ¬μ©μ΄ κ°λ₯νλ€.