상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Vue.js에서 watch 속성은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Vue.js에서 `watch` 속성은 Vue 인스턴스의 <a href='https://sangseek.com/sangseeks/데이터 속성/ko'>데이터 속성</a>이나 계산된 속성(computed properties)의 변화를 감지하고, 그 변화에 따라 특정 작업을 수행할 수 있도록 해주는 기능입니다. `watch`는 주로 비동기 작업이나 데이터의 변화를 기반으로 한 로직을 처리할 때 유용하게 사용됩니다. 기본 개념 Vue.js는 반응형 시스템을 기반으로 하며, 데이터가 변경되면 UI가 자동으로 업데이트됩니다. 그러나 때때로 데이터가 변경될 때 특정 작업을 수행해야 할 필요가 있습니다. 이럴 때 `watch` 속성을 사용합니다. `watch`는 특정 데이터 속성을 감시하고, 그 값이 변경될 때마다 지정된 콜백 함수를 실행합니다. 사용법 `watch` 속성은 Vue 인스턴스의 옵션 중 하나로, 객체 형태로 정의됩니다. 각 속성은 감시할 데이터 속성의 이름을 키로 하고, 그 속성이 변경될 때 실행할 함수를 값으로 가집니다. ```javascript new Vue({ el: ' app', data: { question: '', answer: '질문을 입력하세요.' }, watch: { question: function (newQuestion) { this.answer = '생각 중...'; this.getAnswer(newQuestion); } }, methods: { getAnswer: function (question) { // 비동기 API 호출 또는 복잡한 로직을 수행 <a href='https://sangseek.com/sangseeks/setTimeout/ko'>setTimeout</a>(() => { this.answer = '답변: ' + question; }, 1000); } } }); ``` 위의 예제에서 `question` 데이터 속성이 변경될 때마다 `watch` 속성에 정의된 함수가 호출됩니다. 이 함수는 새로운 질문을 받아서 `answer` 속성을 업데이트합니다. 여러 데이터 속성 감시하기 `watch` 속성은 여러 데이터 속성을 동시에 감시할 수 있습니다. 각 속성에 대해 별도의 콜백 함수를 정의하면 됩니다. ```javascript watch: { question: function (newQuestion) { // question이 변경될 때의 로직 }, anotherProperty: function (newValue) { // anotherProperty가 변경될 때의 로직 } } ``` 깊은 감시 (Deep Watch) 객체나 배열과 같은 복잡한 데이터 구조를 감시할 때는 `deep` 옵션을 사용할 수 있습니다. 이 옵션을 `true`로 설정하면, 해당 데이터 구조의 모든 속성이나 요소의 변화를 감지할 수 있습니다. ```javascript data: { user: { name: '', age: 0 } }, watch: { user: { handler: function (newUser) { console.log('User data changed:', newUser); }, deep: true } } ``` 위의 예제에서 `user` 객체의 속성이 변경될 때마다 `handler` 함수가 호출됩니다. 즉시 실행 (Immediate Watch) `watch` 속성의 콜백 함수는 기본적으로 데이터가 변경될 때만 호출됩니다. 그러나 `immediate` 옵션을 사용하면, 감시를 시작할 때 즉시 한 번 호출되도록 설정할 수 있습니다. ```javascript watch: { question: { handler: function (newQuestion) { this.answer = '생각 중...'; this.getAnswer(newQuestion); }, immediate: true } } ``` 이렇게 설정하면, Vue 인스턴스가 생성될 때 `question`의 현재 값에 대해 `handler`가 즉시 실행됩니다. 결론 Vue.js의 `watch` 속성은 데이터의 변화를 감지하고 그에 따라 특정 작업을 수행할 수 있는 강력한 도구입니다. 비동기 작업, API 호출, 복잡한 로직 처리 등 다양한 상황에서 유용하게 활용될 수 있습니다. `watch`를 적절히 사용하면 Vue 애플리케이션의 반응성을 더욱 향상시킬 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기