개발/Vue
[Vue] watch와 computed
미니시리
2022. 6. 6. 00:13
watch란
데이터의 변화를 감지하여 자동으로 특정 로직을 수행해주는 속성을 말한다.
coumputed
데이터를 미리 연산한 뒤에 그 값을 갖고 있는 것을 말한다.
watch 문법
1. 변경값 파라메터를 가지지 않는 문법
watch: {
변경을감시할프로퍼티명: function () {
...
}
}
2.변경값 파라메터를 가지는 문법
watch: {
변경을감시할프로퍼티명: function (변경후의값, 변경전의값) {
...
}
}
computed 문법
<div id="example">
<p>원본 메시지: "{{ message }}"</p>
<p>역순으로 표시한 메시지: "{{ reversedMessage }}"</p>
</div>
var vm = new Vue({
el: '#example',
data: {
message: '안녕하세요'
},
computed: {
// 계산된 getter
reversedMessage: function () {
// `this` 는 vm 인스턴스를 가리킵니다.
return this.message.split('').reverse().join('')
}
}
})
computed와 watch 비교
watch: 특정 프로퍼티의 변경시점에 특정 액션(call api, push route …)을 취하고자 할때 적합하다.
computed: 종속관계가 복잡할 수록 재계산 시점을 예상하기 힘들기 때문에 종속관계의 값으로 계산된 결과를 리턴하는 것 외의 사이드 이펙트가 일어나는 코드를 지양해야한다.