Vue/문법
Vue Computed, Watch
고코모옹
2021. 6. 19. 23:11
- Computed 속성
- 간단한 연산일 경우 템플릿 내에 표현식으로도 가능
- 복잡하고 반복적인 경우 Computed 속성을 사용
- Computed 속성의 캐싱 vs 메서드
- 표현식에서 메서드를 호출하여도 동일한 결과
- 차이점
- *computed 속성 *
- computed 속성은 반응형 종속성에 기반하여 캐시된다.
- computed 속성은 반응형 종속성 중 일부가 변경된 경우에만 재평가 된다.
- 데이터가 변경되지 않으면 computed 속성에 대해 여러번 접근하더라도 함수를 다시 실행할 필요없이 이전에 계산된 결과를 즉시 반환
- methods
- 다시 렌더링이 발생할 때마다 항상 함수를 실행
- *computed 속성 *
- Computed Getter, Setter
- Computed 속성은 기본적으로 Getter 이지만, 필요할 때엔 Setter도 제공
- vm.fullName = 'mko' 를 실행하면 Setter가 호출되고 vm.firstName과 vm.lastNam이 그에 따라 업데이트 된다.
- Vuex(Store, 중앙 집중식 저장소)에서 유용하게 사용
computed: {
fullName: {
// getter
get() {
return this.firstName + ' ' + this.lastName
},
// setter
set(newValue) {
const names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
}
- Watch 속성
- 대부분의 경우 computed 속성이 더 적절하지만, 사용자 지정 감시자(watcher)가 필요한 경우가 있다.
- 데이터 변경에 대한 응답으로 비동기 혹은 비용이 많이 드는 작업을 수행하는 경우 가장 유용
Computed 속성과 Watch | Vue.js
Computed 속성과 Watch Computed 속성 템플릿 내에 표현식을 넣으면 편리하지만, 간단한 연산을 위한 부분입니다. 템플릿 안에서 너무 많은 연산을 하면 코드가 비대해지고 유지보수가 어렵습니다. 중
v3.ko.vuejs.org
- Computed 속성 vs Watch 속성
- 명령형 watch 콜백보다 computed 속성을 쓰는 것이 더 나은 경우가 많다.
- watch의 경우 명령형이고 코드를 반복
const vm = Vue.createApp({
data() {
return {
firstName: 'Foo',
lastName: 'Bar',
fullName: 'Foo Bar'
}
},
watch: {
firstName(val) {
this.fullName = val + ' ' + this.lastName
},
lastName(val) {
this.fullName = this.firstName + ' ' + val
}
}
}).mount('#demo')
const vm = Vue.createApp({
data() {
return {
firstName: 'Foo',
lastName: 'Bar'
}
},
computed: {
fullName() {
return this.firstName + ' ' + this.lastName
}
}
}).mount('#demo')
[ 참고자료 ]
Computed 속성과 Watch | Vue.js
Computed 속성과 Watch Computed 속성 템플릿 내에 표현식을 넣으면 편리하지만, 간단한 연산을 위한 부분입니다. 템플릿 안에서 너무 많은 연산을 하면 코드가 비대해지고 유지보수가 어렵습니다. 중
v3.ko.vuejs.org