Vue.js 라이프사이클 후크

Vue.js 라이프사이클 후크는 Vue 구성 요소의 라이프사이클의 특정 단계에서 코드를 실행할 수 있는 메서드 세트입니다. 생성에서 파괴까지 구성 요소의 존재의 다양한 지점을 탭할 수 있는 방법을 제공합니다. 이러한 후크는 데이터 초기화, 이벤트 리스너 설정, 리소스 정리와 같은 작업을 수행하는 데 필수적입니다.

Vue 컴포넌트의 수명 주기

Vue 구성 요소의 수명 주기는 여러 단계로 나눌 수 있습니다. 각 단계는 코드를 실행하는 데 사용할 수 있는 특정 수명 주기 후크와 연관됩니다. 다음은 Vue 구성 요소의 수명 주기의 주요 단계입니다.

  • 생성: 구성 요소가 초기화되고 있습니다.
  • 마운팅: 구성 요소가 DOM에 추가되고 있습니다.
  • 업데이트: 구성 요소의 반응형 데이터가 변경되고 있습니다.
  • 파괴: 구성 요소가 DOM에서 제거되고 있습니다.

주요 라이프사이클 후크

Vue.js는 컴포넌트에서 사용할 수 있는 여러 라이프사이클 후크를 제공합니다. 각 후크는 라이프사이클의 특정 단계에 해당합니다. 가장 일반적으로 사용되는 후크는 다음과 같습니다.

  • created: 컴포넌트 인스턴스가 생성된 후 호출됩니다. 데이터를 가져오거나 컴포넌트 상태를 초기화하기에 좋은 위치입니다.
  • mounted: 컴포넌트가 DOM에 마운트된 후에 호출됩니다. 여기서 DOM 조작을 수행하거나 비동기 작업을 시작할 수 있습니다.
  • 업데이트: 컴포넌트의 반응형 데이터가 변경되고 DOM이 업데이트된 후에 호출됩니다. 데이터 변경에 반응하는 데 유용합니다.
  • 파괴됨: 구성 요소가 파괴되기 전에 호출됩니다. 이 후크를 사용하여 이벤트 리스너나 타이머와 같은 리소스를 정리합니다.

라이프사이클 후크의 예

후크 생성됨

created 후크는 구성 요소 인스턴스가 생성되고 마운트되기 전에 작업을 수행하는 데 사용됩니다. 다음은 created 후크를 사용하여 데이터를 가져오는 예입니다.

<template>
  <div>
    <p>Data: {{ data }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      data: null
    };
  },
  created() {
    this.fetchData();
  },
  methods: {
    async fetchData() {
      const response = await fetch('https://api.example.com/data');
      this.data = await response.json();
    }
  }
};
</script>

마운트 후크

mounted 후크는 구성 요소가 DOM에 추가된 후에 호출됩니다. DOM 조작을 수행하거나 구성 요소가 DOM에 있어야 하는 비동기 작업을 시작하는 데 이상적입니다. 다음은 예입니다.

<template>
  <div ref="myDiv"></div>
</template>

<script>
export default {
  mounted() {
    this.$refs.myDiv.innerHTML = 'Component has been mounted!';
  }
};
</script>

업데이트된 Hook

updated 후크는 구성 요소의 반응형 데이터가 변경되고 DOM이 업데이트된 후에 호출됩니다. 데이터 변경에 반응하는 데 유용합니다. 다음은 예입니다.

<template>
  <div>
    <input v-model="text" placeholder="Type something"/>
    <p>Updated Text: {{ text }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      text: ''
    };
  },
  updated() {
    console.log('Component updated with text:', this.text);
  }
};
</script>

파괴된 후크

destroyed 후크는 구성 요소가 파괴되기 전에 호출됩니다. 이 후크를 사용하여 이벤트 리스너 제거 또는 타이머 중지와 같은 정리를 수행합니다. 다음은 예입니다.

<template>
  <div>Check the console when this component is destroyed</div>
</template>

<script>
export default {
  destroyed() {
    console.log('Component is being destroyed');
  }
};
</script>

결론

Vue.js 라이프사이클 후크는 구성 요소 라이프사이클의 다양한 단계를 관리하는 데 필수적입니다. 이러한 후크를 이해하고 사용하면 데이터를 효과적으로 초기화하고, DOM을 조작하고, 업데이트를 처리하고, 리소스를 정리할 수 있습니다. Vue.js 구성 요소에 라이프사이클 후크를 통합하여 견고하고 반응성이 뛰어난 애플리케이션을 만드세요.