Vue μλͺ μ£ΌκΈ°
Vue μΈμ€ν΄μ€ λΌμ΄ν μ¬μ΄ν΄
μΈμ€ν΄μ€ μμ± μ λ°μ΄ν° κ΄μ°°, ν νλ¦Ώ μ»΄νμΌ, DOM μ κ°μ²΄ μ°κ²°, λ°μ΄ν° λ³κ²½ μ DOM μ μ λ°μ΄νΈ νκ² λλ€.
β Creation: μ»΄ν¬λνΈ μ΄κΈ°ν λ¨κ³
μ»΄ν¬λνΈκ° DOMμ μΆκ°λκΈ° μ , ν΄λΌμ΄μΈνΈλ¨κ³Ό μλ²λ¨ λ λλ§ λͺ¨λμμ μ²λ¦¬ν΄μΌ ν μΌλ‘ μμ§ μ»΄ν¬λνΈκ° λμ μΆκ°λκΈ° μ μ΄κΈ° λλ¬Έμ λμ μ κ·Όνκ±°λ this.$elλ₯Ό μ¬μ©ν μ μλ€.
- beforeCreate
Vue.JSμ λΌμ΄ν μ¬μ΄ν΄ ν
μ€μμ κ°μ₯ λ¨Όμ μ€ν λλ ν
μ
λλ€. dataμ μ΄λ²€νΈ($on, $once, $off, $emit), κ°μμ($watch)λ±μ΄ μ€μ λκΈ° μ μ νΈμΆλλ λΌμ΄ν μ¬μ΄ν΄ ν
μ΄λ€.
- created
data, computed, methods, watch λ±κ³Ό κ°μ μ΅μ
μ€μ μ΄ μλ£λ μμ μ΄κΈ° λλ¬Έμ, data λ±μ μ¬μ©ν μ μλ€. νμ§λ§ μμ§ DOMμ μ»΄ν¬λνΈκ° λ§μ΄νΈ λμ§ μμκΈ° λλ¬Έμ $elμ μ¬μ©ν μ μλ€.
β‘ Mounting: DOM μ½μ
λ¨κ³
μ΄κΈ° λ λλ§ μ§μ μ μ»΄ν¬λνΈμ μ§μ μ κ·Ό, μλ² μ¬μ΄λ λ λλ§μμλ μ§μνμ§ μλλ€.
- beforeMount
μ»΄ν¬λνΈ μ΄κΈ°μ dataκ° μΈν
λμ΄μΌ νλ€λ©΄ created λΌμ΄ν μ¬μ΄ν΄ ν
μ, λ λλ§ λκ³ DOMμ λ³κ²½ν΄μΌ νλ€λ©΄ mounted λΌμ΄ν μ¬μ΄ν΄ ν
μ μ¬μ©νλ©΄ λκΈ° λλ¬Έμ, κ±°μ μ¬μ©νμ§ μλ λΌμ΄ν μ¬μ΄ν΄ ν
μ΄λ€.
- mounted
μ»΄ν¬λνΈκ° DOMμ μΆκ° λ ν νΈμΆλλ λΌμ΄ν μ¬μ΄ν΄ ν
μ΄λ€. μλ² μ¬μ΄λ λ λλ§μ μ§μνμ§ μλλ€.
$elμ μ¬μ©νμ¬ DOMμ μ κ·Ό ν μ μλ€. mounted ν μ΄ νΈμΆλμλ€κ³ λͺ¨λ μ»΄ν¬λνΈκ° λ§μ΄νΈ λμλ€κ³ 보μ₯ν μλ μλ€.
μ μ²΄κ° λ λλ§ λ³΄μ₯λ μνμμ μμ
μ νκΈ° μν΄μλ $nextTickμ μ¬μ©ν΄μΌ νλ€.
λΆλͺ¨μ μμ κ΄κ³μ μ»΄ν¬λνΈμμ μ°λ¦¬κ° μκ°ν μμλ‘ mountedκ° λ°μνμ§ μλλ€λ μ μ΄λ€. μ¦ λΆλͺ¨μ mountedν
μ΄ μμμ mountedν
λ³΄λ€ λ¨Όμ μ€νλμ§ μλλ€. μ€νλ € κ·Έ λ°λμ΄λ€.
β’ Updating: Diff λ° μ¬λ λλ§ λ¨κ³
μ»΄ν¬λνΈμμ μ¬μ©λλ λ°μν μμ±λ€μ΄ λ³κ²½λκ±°λ μ΄λ€ μ΄μ λ‘ μ¬ λ λλ§μ΄ λ°μλλ©΄ μ€ν, μλ² λ λλ§μμλ νΈμΆλμ§ μλλ€.
- beforeUpdate
μ
λ°μ΄νΈ λ κ°λ€μ κ°μ§κ³ μλ μνμ΄κΈ° λλ¬Έμ, μ
λ°μ΄νΈ λ κ°μΌλ‘ λ€λ₯Έ κ°λ€μ μ
λ°μ΄νΈ ν μ μλ€. μ΄ ν
μμ κ°μ΄ λ³κ²½λλλΌλ λ€μ beforeUpdate ν
μ΄ νΈμΆ λμ§ μκΈ° λλ¬Έμ, 무ν 루νμ λΉ μ§ κ±±μ μ νμ§ μμλ λλ€.
- updated
DOMμ΄ μ
λ°μ΄νΈ λ ν νΈμΆ λλ ν
μ΄κΈ° λλ¬Έμ λ³κ²½ λ νμ DOMμ μ΄μ©ν΄μΌ νλ μ²λ¦¬λ₯Ό ν λ μ¬μ©νκΈ° μ μ©ν ν
μ΄λ€. mounted ν
κ³Ό λ§μ°¬κ°μ§λ‘ μ¬ λ λλ§μ΄ λλ¬λ€λ κ²μ΄ 보μ₯λ μνμμ μμ
νκΈ° μν΄μλ $nextTickμ μ¬μ©ν΄μΌ νλ€. beforeUpdate ν
κ³Ό λ€λ₯΄κ² updated ν
μμ dataλ₯Ό μμ νκ² λλ©΄ update ν
μ΄ νΈμΆ λκΈ° λλ¬Έμ 무ν 루νμ λΉ μ§ μ μμΌλ μ μν΄μΌ νλ€.
β£ Destroy: μ»΄ν¬λνΈ μ κ±° μ μ€ν
- beforeDestroy
μ»΄ν¬λνΈκ° μ κ±° λκΈ° μ§μ μ νΈμΆλλ λΌμ΄ν μ¬μ΄ν΄ ν
μ΄λ€. μ΄ ν
μμ μ»΄ν¬λνΈλ λ³Έλμ κΈ°λ₯λ€μ κ°μ§κ³ μλ μ¨μ ν μνμ΄λ€. μ΄ ν
μμ μ΄λ²€νΈ 리μ€λλ₯Ό ν΄μ νκ±°λ μ»΄ν¬λνΈμμ λμμΌλ‘ ν λΉ λ°μ μμλ€μ ν΄μ ν΄μΌ ν λ μ¬μ©νκΈ° μ ν©ν ν
μ΄λ€. μλ² μ¬μ΄λ λ λλ§μ μ§μνμ§ μλλ€.
- destroyed
μ»΄ν¬λνΈκ° μ κ±° λ ν νΈμΆλλ λΌμ΄ν μ¬μ΄ν΄ ν
μ΄λ€. μ»΄ν¬λνΈμ λͺ¨λ μ΄λ²€νΈ 리μ€λ(@click, @change λ±..)μ λλ ν°λΈ(v-model, v-show λ±..)μ λ°μΈλ©μ΄ ν΄μ λκ³ , νμ μ»΄ν¬λνΈλ λͺ¨λ μ κ±°λλ€. μλ² μ¬μ΄λ λ λλ§μ μ§μνμ§ μλλ€.
λΌμ΄νμ¬μ΄ν΄ ν | μ€λͺ |
beforeCreate | Vue μΈμ€ν΄μ€κ° μμ±λκ³ κ°μ₯ μ²μμΌλ‘ μ€νλλ λ¨κ³ μΈμ€ν΄μ€μ data μ methods μμ±κ³Ό νλ©΄ μμκ° μ μλμ΄ μμ§ μμ μ κ·Όν μ μμ |
created | Vue μΈμ€ν΄μ€κ° μμ±λμκ³ data μ methods μμ±μ΄ μ μλμ΄ λ μμ± κ°μ΄ μ κ·Ό κ°λ₯ νλ©΄ μμμ μΈμ€ν΄μ€κ° μ°κ²°λκΈ° μ μΌλ‘ template μμ±μ μ μλ λμλ μ κ·Όν μ μμ |
beforeMount | template μμ±μ μ§μ ν λ§ν¬μ μμ±μ render() ν¨μλ‘ λ³νν ν el μμ±μ μ§μ ν νλ©΄ μμμ μΈμ€ν΄μ€λ₯Ό λΆμ°©νκΈ° μ§μ μ νΈμΆ |
mounted | el μμ±μμ μ§μ ν νλ©΄ μμμ μΈμ€ν΄μ€κ° μ°κ²°λ ν νΈμΆ template μμ±μ μ μλ λμ μ κ·Όνμ¬ νλ©΄ μμ μ μ΄ κ°λ₯ |
beforeUpdate | μΈμ€ν΄μ€ μμ±μ΄ νλ©΄μ μ°κ²°λκ³ κ΄μ°°νλ λ°μ΄ν°κ° λ³κ²½λμμ λ νλ©΄μ λ°μλκΈ° μ μ νΈμΆ |
updated | λ°μ΄ν°κ° λ³κ²½λκ³ λμ νλ©΄ μμ μ μ΄ κ°λ₯ |
beforeDestroy | Vue μΈμ€ν΄μ€κ° μμ΄μ§κΈ° μ§μ μ νΈμΆ |
destroyed | Vue μΈμ€ν΄μ€κ° μμ΄μ§κ³ λ ν νΈμΆ |
μ°Έκ³ μλ£ λ° μΆμ² πβοΈ
https://v3.ko.vuejs.org/guide/composition-api-lifecycle-hooks.html
https://hyeooona825.tistory.com/40