일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- javascript
- 자바스크립트기초
- 자바스크립트 활용
- 제주베이스코딩100제
- frontend
- 프로그래밍
- 개발
- 자바스크립트
- 웹퍼블리셔
- 퍼블리싱
- js
- 프로그래밍기초
- 자바스크립트 기초
- 취준생
- 자바스크립트 기초활용
- 코딩
- 프론트엔드기술면접
- 프로그래밍 기초
- 프론트엔드
- 생활코딩
- 웹개발
- 코딩공부
- 퍼블리셔
- 웹퍼블리싱
- 자바스크립트 실습
- 대학생
- 코린이
- 주니어개발자
- 포토샵
- 웹퍼블리셔기술면접
Archives
- Today
- Total
차곡차곡
Vue.js에서 computed와 watch 비교 정리 본문
computed와 watch는 Vue.js에서 데이터 변화에 반응하여 코드를 실행하는 데 사용되는 두 가지 유용한 기능입니다. 하지만, 각각 다른 목적과 특징을 가지고 있어 상황에 맞게 적절하게 사용해야 합니다.
1. 특징 비교
구분 | computed | watch |
목적 | 데이터 변화를 기반으로 새로운 값을 계산 | 데이터 변화 감지 및 반응 |
사용 방식 | getter 함수 형식 | 옵션 객체 형식 |
실행 빈도 | 데이터 변화가 감지될 때마다 다시 계산 | 특정 조건 충족 시에만 실행 |
성능 | watch보다 빠름 | computed보다 느림 |
용도 | 변하지 않는 값 계산 (예: 이름 표시) | 비즈니스 로직 수행, 특정 조건에 따른 작업 (예: API 호출) |
선언 방식 | computed 프로퍼티 사용 | watch 옵션 사용 |
2. 사용 시점
- computed 사용 시점:
- 변하지 않는 값을 기반으로 새로운 값을 계산해야 할 때
- 데이터 변화에 따라 자주 업데이트되는 값을 표시해야 할 때
- 성능이 중요한 상황에서
- watch 사용 시점:
- 데이터 변화 감지 후 특정 조건에 따라 작업을 수행해야 할 때
- 비즈니스 로직을 구현해야 할 때
- 특정 변수가 변경될 때만 코드를 실행해야 할 때
3. 코드 예시
computed 예시:
HTML
`<template> <div> 이름: {{ fullName }} </div> </template>
<script> export default { computed: { fullName() { return this.firstName + ' ' + this.lastName; } }, data() { return { firstName: '김', lastName: '철수' } } } </script>`
watch 예시:
HTML
<template> <div> 카운터: {{ count }} </div> <button @click="increment">증가</button> </template><script> export default { watch: { count(newValue, oldValue) { if (newValue >= 10) { alert('카운터가 10 이상입니다!'); } } }, data() { return { count: 0 } }, methods: { increment() { this.count++; } } } </script>
5. 결론
computed와 watch는 Vue.js에서 데이터 변화에 반응하여 코드를 실행하는 데 유용한 기능이지만, 각각 다른 목적과 특징을 가지고 있습니다. 따라서, 상황에 맞게 적절하게 사용해야 효과적인 코드를 작성할 수 있습니다.
'개발 > vue.js' 카테고리의 다른 글
Vue.js 레이아웃 컴포넌트 활용 (0) | 2024.05.03 |
---|---|
vue.js 재사용 컴포넌트 (0) | 2024.05.03 |
Vue.js에서 조건부 렌더링 (0) | 2024.05.03 |
Vue.js 이벤트 (0) | 2024.05.03 |
Vue.js 데이터 바인딩 (0) | 2024.05.03 |