본문 바로가기
Vue

Vue watch의 속성

by hjcode 2022. 11. 7.

 

immediate

watch는 속성의 값이 변할때마다 실행되지만,
변경과 관계없이 처음 실행해야 하는 경우가 있다.

watch: {
    myData(value) {

    }
},

페이지가 처음 로드될때 watch로 바라보는 값이 기본값으로 설정된다.
이때는 속성이 변경이 되지 않아 watch는 실행이 되지않는다.

immediate: true로 설정하고 핸들러 함수를 아래처럼 옮긴다.

watch: {
    myData: {
        immediate: true,
        handler(value) {
            // ...
        }
    }
},

 

deep

const array = [1, 2, 3, 4];
array.push(5);
array.push(6);
array.push(7);
// array = [1, 2, 3, 4, 5, 6, 7]

위와 같이 배열을 업데이트 해줬지만 watch에서는 감지가 되지 않는다.
배열이나 객체를 watch할 때 속성의 내부를 검사하기 위해서는 deep: true를 설정해주고
handler메서드를 사용하여 원하는 값을 얻을 수 있다.

watch: {
    myData: {
        deep: true,
        handler(value) {
            // ...
        }
    }
},

 

handler

handler는 watch된 속성이 변경될 때 호출될 함수를 지정한다.
deep, immediate를 지정할 필요가 없는 경우 사용하는 단축표현이다. 

단축표현 대신 아래처럼 사용할 수 있다.

watch: {
    myData(value) {
        // ...
    }
},
watch: {
    myData: {
        handler(value) {
            // ...
        }
    }
},

 

반응형

'Vue' 카테고리의 다른 글

Skeleton UI 제작  (0) 2023.02.10
Vue 환경변수  (0) 2021.09.07
vue.js axios 예제  (2) 2020.01.13
vuex, router로 영화 앱 만들기 예제  (4) 2020.01.06
slot 으로 재사용하기  (0) 2019.11.22