새발블로그

[Vue.js] Vue 생명주기 본문

Client/Vue.js

[Vue.js] Vue 생명주기

EUG 2025. 5. 4. 17:01

펻 컴포넌트는 생성되고, DOM에 부착되고, 업데이트 되며, 결국 소멸한다. 이 일렬의 과정을 생명주기라고하며, 각 단계에서 특정 함수를 실행할 수 있는 라이프사이클 훅이 존재한다.

 

1. Vue 생명주기

  1. 생성 단계 (Creation)
  2. 마운트 단계 (Mounting)
  3. 업데이트 단계 (Updating)
  4. 소멸 단계 (Unmounting)

2. 생명주기 전체 흐름 (Vue 2 기준)

beforeCreate → created → beforeMount → mounted → beforeUpdate → updated → beforeUnmount → unmounted

생명주기 단계 요약:

beforeCreate 인스턴스 초기화 전, data와 methods 접근 불가
created 인스턴스 초기화 완료, data, props 접근 가능
beforeMount DOM에 렌더링되기 직전
mounted DOM 렌더링 완료, 엘리먼트 접근 가능
beforeUpdate 반응형 데이터 변경 시 DOM 업데이트 전
updated DOM 업데이트 후
beforeUnmount 컴포넌트가 DOM에서 제거되기 직전
unmounted 컴포넌트가 제거된 후

3. Options API에서의 사용법

export default {
  data() {
    return { count: 0 };
  },
  created() {
    console.log('컴포넌트 생성됨!');
  },
  mounted() {
    console.log('DOM에 마운트됨!');
  },
  updated() {
    console.log('업데이트됨!');
  },
  unmounted() {
    console.log('컴포넌트가 제거됨!');
  }
};
  • Vue 2 & 3 모두에서 사용 가능.
  • 각 훅은 this를 통해 컴포넌트 내부 상태에 접근할 수 있음.

4. Composition API에서의 사용법

Vue 3의 Composition API에서는 생명주기 훅들을 함수 형태로 사용한다.

예시:

<script setup>
import { onMounted, onUpdated, onUnmounted } from 'vue';

onMounted(() => {
  console.log('마운트 완료!');
});

onUpdated(() => {
  console.log('업데이트 완료!');
});

onUnmounted(() => {
  console.log('언마운트 완료!');
});
</script>

 

 

5. 생명주기 훅 목록 (Composition API 기준)

onBeforeMount 컴포넌트가 DOM에 붙기 전
onMounted DOM 마운트 완료 후
onBeforeUpdate DOM이 업데이트되기 직전
onUpdated DOM 업데이트 완료 후
onBeforeUnmount 컴포넌트 제거 직전
onUnmounted 컴포넌트 제거 후

⚠️ onBeforeCreate, onCreated는 Composition API에서는 따로 제공되지 않으며, setup() 자체가 그 역할을 수행한다.

 

 

'Client > Vue.js' 카테고리의 다른 글

[Vue.js] Pinia로 Vue 상태 관리하기  (0) 2025.05.04
[Vue.js] Vue 3에서 API 호출은 언제 하는 게 맞을까?  (0) 2025.05.04
[Vue.js] Composition API  (0) 2025.05.04
Virtual DOM, Reflow, Repaint  (0) 2025.03.22
MVVM 패턴  (0) 2025.03.15