Vue

[Vue2] Vue Watch 속성

양치개발자 2023. 4. 29. 14:17
반응형

Watch이란?

  • 말 그대로 감시자 역할
  • 감시할 데이터를 지정하고 그 데이터가 바뀌면 이런 함수를 실행하라는 방식의 명령형 프로그래밍

Watch의 특징?

  • Vue에서 watch 속성을 사용하여 데이터 변경을 감지하고 반응 할 수 있으며,
    데이터 변경 결과에 따라 추가 반응 및 데이터 조작도 가능하다.
  • API 엑세스(비동기 연산)을 수행하고 최종응답을 얻을 때 까지 중간 상태를 설정 할 수도 있다.
  • 비동기식 이거나 시간이 많이 소요되는 작업을 수행하려고 하는 경우 watch를 유용하게 사용할 수 있다.

watch 속성의 기본 사용법

watch: {
       <감시 대상 데이터>: function(<새로운값>, <이전 값>){
            // 감시 대상 데이터가 변했을 때, 처리 로직       
} }

 

예제

 

HTML

<div id="app">
      {{ message }}<br />
      <button @click="changeMessage">Click</button><br />
      {{ updated }}
 </div>

 

JavaScript

 new Vue({
        el: "#app",
        data: {
          message : '헬로우',
          updated : '아니요'
        },
        // 컴포넌트 내부
        methods: {
          changeMessage() {
            this.message = '코지코더'
          }
        },
        computed: {
          // 계산된 getter
          reverseMessage() {
            // 'this'는 message를 가리킵니다.
            return this.message.split('').reverse().join('')
          }
        },
        watch: {
          message(newVal, oldVal) {
            console.log(newVal,oldVal);
            this.updated = '네';
          }
        }
      });

 

실행 결과

클릭 전

 

 

클릭 후

 

 

 

참고 자료

https://youtu.be/aMfVABEHyQk?list=PLB7CpjPWqHOtYP7P_0Ls9XNed0NLvmkAh 

 

https://v2.ko.vuejs.org/v2/guide/computed.html

 

computed와 watch — Vue.js

Vue.js - 프로그레시브 자바스크립트 프레임워크

v2.ko.vuejs.org

 

반응형