반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- aws cicd
- node
- SQL
- Python
- docker
- 도커
- JavaScript
- Airflow
- codepipeline
- codedeploy error
- codebuild
- COALESCE
- Spring Error
- Flux
- AWS CI/CD 구축하기
- or some instances in your deployment group are experiencing problems.
- java bigdecimal
- bootstrap
- PostgreSQL
- VPN
- Kafka
- aws
- kubeflow
- IntelliJ
- Jenkins
- chartjs
- chart.js
- redis
- Spring
- codedeploy
Archives
- Today
- Total
Small Asteroid Blog
[Vue] onMounted, watch, watchEffect 본문
728x90
onMounted, watch, watchEffect는 모두 Vue3에서 컴포지션 API를 사용할 때 자주 쓰이는 반응형(reactivity) 관련 훅입니다.
✔️ onMounted
- 컴포넌트가 DOM에 마운트된 직후 한 번 실행되는 함수입니다.
- 주로 초기 데이터 로딩, 이벤트 리스너 등록 등에 사용됩니다.
import { onMounted } from 'vue'
onMounted(() => {
console.log('컴포넌트가 마운트됨!')
fetchData()
})
✔️ watch
- 하나 이상의 반응형 데이터의 변화를 감지해서 실행합니다.
- 예전 Vue의 watch 옵션과 거의 동일한 역할입니다.
- 값이 변경될 때만 실행됩니다.
- ref, reactive 모두 감지할 수 있고, deep, immediate 옵션도 사용할 수 있습니다.
import { ref, watch } from 'vue'
const count = ref(0)
watch(count, (newVal, oldVal) => {
console.log(`count가 ${oldVal}에서 ${newVal}로 변경됨`)
})
✔️ watchEffect
- 반응형 데이터에 의존하는 함수를 감지해서 자동 실행합니다.
- 함수 내부에서 사용하는 모든 반응형 데이터에 자동으로 의존성 추적이 됩니다.
- 최초 실행 + 의존 데이터 변경 시 재실행
- 위 코드는 name.value가 바뀌면 자동으로 다시 실행됩니다.
- 별도로 의존성을 명시하지 않아도 됩니다.
import { ref, watchEffect } from 'vue'
const name = ref('홍길동')
watchEffect(() => {
console.log(`이름이 ${name.value}로 설정됨`)
})
차이점
항목 | onMounted | watch | watchEffect |
실행 시점 | 컴포넌트 마운트 시 | 감시 대상 변경 시 | 즉시 실행 + 의존성 변경 시 |
의존성 추적 | 없음 | 수동 지정 | 자동 추적 |
사용 용도 | 초기 작업 | 특정 데이터 변경 반응 | 반응형 데이터 기반 자동 처리 |
제어 가능성 | 단순 실행 | 구체적 제어 가능 (old, new 값 등) | 제어 어려움 (디버깅도 다소 어려움) |
언제 어떤 걸 써야 할까?
- 초기 로딩 / DOM 작업: onMounted
- 특정 변수의 변경 감지: watch
- 여러 변수 변경 자동 추적 / 반응형 로직 처리: watchEffect
728x90
반응형
'프론트엔드 > vue' 카테고리의 다른 글
Vue 프로젝트 세팅 (0) | 2025.03.08 |
---|