# watch API Vue 3

watch APIλŠ” μ»΄ν¬μ§€μ…˜(Composition API)μ—μ„œ μ‚¬μš©λœ watch 속성을 μ˜λ―Έν•©λ‹ˆλ‹€. 이 νŽ˜μ΄μ§€μ—μ„œλŠ” μ»΄ν¬μ§€μ…˜μ—μ„œ watch 속성을 μ–΄λ–»κ²Œ μ‚¬μš©ν•  수 μžˆλŠ”μ§€ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

TIP

watch 속성은 data, computed, state λ“± λ°˜μ‘μ„±μ΄ μ£Όμž…λœ 값이 λ³€ν–ˆμ„ λ•Œ νŠΉμ • λ‘œμ§μ„ μ‹€ν–‰ν•˜κ²Œ ν•΄μ£ΌλŠ” μ†μ„±μž…λ‹ˆλ‹€.

# watch API μ†Œκ°œ

watch APIλ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄ λ¨Όμ € watch 속성을 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” μΈμŠ€ν„΄μŠ€ μ˜΅μ…˜ 속성 λ°©μ‹μœΌλ‘œ μž‘μ„±λœ watch 속성 μ½”λ“œμž…λ‹ˆλ‹€.

<script>
export default {
  data() {
    return {
      message: 'Hello'
    }
  },
  watch: {
    message: function(newValue, oldValue) {
      console.log(newValue);
    }
  }
}
</script>

μœ„ μ½”λ“œλŠ” message 값을 λ³€κ²½ν•  λ•Œλ§ˆλ‹€ λΈŒλΌμš°μ € μ½˜μ†”μ— λ³€κ²½λœ 값이 좜λ ₯λ˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€.

μ΄λ²ˆμ—” μœ„ μ½”λ“œλ₯Ό μ»΄ν¬μ§€μ…˜ μŠ€νƒ€μΌμ˜ watch API둜 λ³€κ²½ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

<script>
import { ref, watch } from 'vue';

export default {
  setup() {
    // data
    const message = ref('');

    // watch
    watch(message, (newValue, oldValue) => {
      console.log(newValue);
    });
  }
} 
</script>

μ•žμ—μ„œ μ‚΄νŽ΄λ³Έ μ½”λ“œμ™€ λ™μΌν•˜κ²Œ λ³€ν™”λ₯Ό 감지할 데이터λ₯Ό watch API의 첫 번째 인자둜 μ„ μ–Έν•˜κ³ , 두 번째 μΈμžμ— 싀행될 λ‘œμ§μ„ μ μ—ˆμŠ΅λ‹ˆλ‹€.

# μš©μ–΄ 정리

  • watch 속성 : Vue 2μ—μ„œ μ‚¬μš©ν•˜λ˜ watch 속성
  • watch API : μ»΄ν¬μ§€μ…˜ μŠ€νƒ€μΌλ‘œ μž‘μ„±λœ setup μ•ˆμ—μ„œμ˜ watch 속성