Vue Reactive - ChoDragon9/posts GitHub Wiki
https://kr.vuejs.org/v2/guide/reactivity.html
λ°μνμ λν΄ κΉμ΄ μμ보기
Vueμ κ°μ₯ λλλ¬μ§ νΉμ§ μ€ νλλ λμ μ λμ§ μλ λ°μν μμ€ν μ λλ€. λͺ¨λΈμ λ¨μν JavaScript κ°μ²΄μ λλ€. μμ νλ©΄ νλ©΄μ΄ κ°±μ λ©λλ€. μ€ν μ΄νΈ κ΄λ¦¬λ₯Ό κ°λ¨νκ³ μ§κ΄μ μΌλ‘ λ§λ€μ΄μ£Όμ§λ§ 곡ν΅μ μ μ κ±°νκΈ° μν΄ μ΄λ»κ² μλνλμ§ μ΄ν΄νλ κ²λ μ€μν©λλ€.
λ³κ²½ λ΄μ©μ μΆμ νλ λ°©λ²
Vue μΈμ€ν΄μ€μ JavaScript κ°μ²΄λ₯Ό data μ΅μ
μΌλ‘ μ λ¬νλ©΄ Vueλ λͺ¨λ μμ±μ Object.defineProperty
λ₯Ό μ¬μ©νμ¬ getter/setter
λ‘ λ³νν©λλ€. μ΄λ Vueκ° ES5λ₯Ό μ¬μ©ν μ μλ IE8 μ΄νλ₯Ό μ§μνμ§ μλ μ΄μ μ
λλ€.
λͺ¨λ μ»΄ν¬λνΈ μΈμ€ν΄μ€μλ ν΄λΉ watcher
μΈμ€ν΄μ€κ° μμΌλ©°, μ΄ μΈμ€ν΄μ€λ μ»΄ν¬λνΈκ° μ’
μμ
μΌλ‘ λ λλ§λλ λμ μμ
λ λͺ¨λ μμ±μ κΈ°λ‘
ν©λλ€. λμ€μ μ’
μμ μΈ setter
κ° νΈλ¦¬κ±°
λλ©΄ watcher
μ μλ¦¬κ³ μ»΄ν¬λνΈκ° λ€μ λ λλ§
λ©λλ€.
λ³κ²½ κ°μ§ κ²½κ³
μ΅μ JavaScriptμ νκ³ (κ·Έλ¦¬κ³ Object.observe
μ ν¬κΈ°)λ‘ μΈν΄ Vueλ μμ±μ μΆκ° μ κ±°λ₯Ό κ°μ§ν μ μμ΅λλ€. Vueλ μΈμ€ν΄μ€ μ΄κΈ°ν μ€μ getter / setter λ³ν νλ‘μΈμ€λ₯Ό μννκΈ° λλ¬Έμ data κ°μ²΄μ μμ±μ΄ μμ΄μΌ Vueκ° μ΄λ₯Ό λ³ννκ³ μλ΅ν μ μμ΅λλ€.
Vueλ μ΄λ―Έ λ§λ€μ΄μ§ μΈμ€ν΄μ€μ μλ‘μ΄ λ£¨νΈ μμ€μ λ°μ μμ±μ λμ μΌλ‘ μΆκ°νλ κ²μ νμ©νμ§ μμ΅λλ€. κ·Έλ¬λ Vue.set(object, key, value)
λ©μλλ₯Ό μ¬μ©νμ¬ μ€μ²© λ κ°μ²΄μ λ°μμ± μμ±μ μΆκ° ν μ μμ΅λλ€.
λ°μν μμ± μ μΈνκΈ°
Vueλ λ£¨νΈ μμ€μ λ°μμ± μμ±μ λμ μΌλ‘ μΆκ° ν μ μμΌλ―λ‘ λͺ¨λ λ£¨νΈ μμ€μ λ°μμ± λ°μ΄ν° μμ±μ λΉ κ°μΌλ‘λΌλ μ΄κΈ°μ μ μΈνμ¬ Vue μΈμ€ν΄μ€λ₯Ό μ΄κΈ°νν΄μΌν©λλ€.
μ΄ μ ν μ¬νμλ κΈ°μ μ μΈ μ΄μ κ° μμ΅λλ€.
μ’
μμ± μΆμ μμ€ν
μμ μ£μ§ μΌμ΄μ€ ν΄λμ€
λ₯Ό μ κ±°νκ³ Vue μΈμ€ν΄μ€λ₯Ό μ ν κ²μ¬ μμ€ν
μΌλ‘ λ λ©μ§κ² λ§λλλ€. κ·Έλ¬λ μ½λ μ μ§ κ΄λ¦¬ μΈ‘λ©΄μμλ μ€μν κ³ λ € μ¬νμ΄ μμ΅λλ€. data κ°μ²΄
λ μ»΄ν¬λνΈ μνμ λν μ€ν€λ§
μ κ°μ΅λλ€. λͺ¨λ λ°μ μμ±μ 미리 μ μΈ
νλ©΄ λμ€μ λ€μ λ°©λ¬Ένκ±°λ λ€λ₯Έ κ°λ°μκ° μ½μ λ κ΅¬μ± μμ μ½λλ₯Ό λ μ½κ² μ΄ν΄
ν μ μμ΅λλ€.
λΉλκΈ° κ°±μ ν
Vueλ DOM μ λ°μ΄νΈλ₯Ό λΉλκΈ°λ‘ ν©λλ€. λ°μ΄ν° λ³κ²½μ΄ λ°κ²¬ λ λλ§λ€ νλ₯Ό μ΄κ³ κ°μ μ΄λ²€νΈ 루νμμ λ°μνλ λͺ¨λ λ°μ΄ν° λ³κ²½μ λ²νΌμ λ΄μ΅λλ€. κ°μ Watcherκ° μ¬λ¬ λ² λ°μνλ©΄ λκΈ°μ΄μμ ν λ²λ§ νΈμλ©λλ€. μ΄ λ²νΌλ§λ μ€λ³΅μ μ κ±°λ λΆνμν κ³μ°κ³Ό DOM μ‘°μμ νΌνλ λ° μμ΄ μ€μν©λλ€. κ·Έ λ€μ, μ΄λ²€νΈ 루ν βtickβμμ Vueλ λκΈ°μ΄μ λΉμ°κ³ μ€μ (μ΄λ―Έ μ€λ³΅ μ κ±° λ) μμ μ μνν©λλ€.