Watch
- 반응형 상태가 변경되었을때에 감지하여 다른 작업 (api call 등)을 수행해야 하는 경우 사용하는 함수.
- 어떠한 상태가 변경되었을때 DOm을 변경하거나 비동기 작업을해서 다른 상태를 변경하는 것
<script>
watch(변경감지할 데이터 , (새로운 값, 기존 값)=>{
});
</script>
<script>
watch(() => x.value+ y.value, (sum,oldValue) =>{
console.log(sum);
console.log(oldValue);
})
watch([x, y], ([newX, newY]) => {
console.log(newX);
console.log(newY);
})
watch(obj,(newValue,oldValue)=>{
console.log(newValue);
console.log(oldValue);
})
watch (()=> obj.count ,(newValue,oldValue)=>{ /
console.log(newValue);
console.log(oldValue);
});
</script>
Deep Option
- 반응형 객체를 직접 Watch()하면 암시적으로 깊은 감시자가 생성 즉, 속성 뿐만 아니라 모든 중첩된 속성에도 트리거가 된다.
- Getter Function으로 객체를 넘길 경우에는 객체의 값이 바뀔 경우에만 트리거가 됨 즉 중첩된 속성은 트리거되지 않음
watch( ()=> person.obj , newValue =>{
console.log(newValue);
})
- Obj안의 count가 변화해도 watch 작동 X obj 자체가 변경될 경우 작동