SeouliteLab

[Vue.js] activated: 컴포넌트 활성화 시 실행되는 훅 이해하기 본문

카테고리 없음

[Vue.js] activated: 컴포넌트 활성화 시 실행되는 훅 이해하기

Seoulite Lab 2024. 4. 26. 08:23

 

1. 개요

Vue.js에서 activated 훅은 keep-alive 컴포넌트가 활성화될 때 호출되는 라이프사이클 훅입니다. 컴포넌트 개발자는 이 훅을 사용하여 컴포넌트가 활성화될 때 필요한 작업을 수행하거나 데이터를 초기화할 수 있습니다.

activated 훅은 다음과 같은 상황에서 호출됩니다.

  • keep-alive 컴포넌트가 처음으로 렌더링될 때
  • keep-alive 컴포넌트가 비활성화된 후 다시 활성화될 때

2. activated 훅 사용 예시

다음은 activated 훅을 사용하는 예시입니다.

HTML
<template>
  <div>
    <h2>{{ title }}</h2>
    <p>{{ content }}</p>
  </div>
</template>

<script>
export default {
  name: 'MyComponent',
  data() {
    return {
      title: '제목',
      content: '내용',
    };
  },
  activated() {
    // 컴포넌트 활성화 시 수행할 작업을 여기에 작성합니다.
    console.log('컴포넌트가 활성화되었습니다!');

    // 데이터 초기화
    this.title = '새로운 제목';
    this.content = '새로운 내용';
  },
};
</script>

<style scoped>
/* 스타일 정의 */
</style>
 

설명:

  • activated 훅은 keep-alive 컴포넌트가 활성화될 때 호출됩니다.
  • 훅 내에서 컴포넌트 활성화 메시지를 콘솔에 출력합니다.
  • 컴포넌트 데이터 속성인 title과 content를 새로운 값으로 초기화합니다.

3. activated 훅의 장점

activated 훅을 사용하면 다음과 같은 장점을 얻을 수 있습니다.

  • 컴포넌트 활성화 시 작업 수행: 컴포넌트가 활성화될 때 필요한 작업을 수행할 수 있습니다. 예를 들어, 데이터 로딩, 애니메이션 실행, DOM 조작 등을 수행할 수 있습니다.
  • 데이터 초기화: 컴포넌트가 활성화될 때마다 데이터를 초기화하여 항상 최신 상태를 유지할 수 있습니다.
  • 사용자 경험 개선: 컴포넌트가 매번 새로 렌더링되는 것처럼 보이도록 하여 사용자 경험을 개선할 수 있습니다.

4. 주의 사항

  • activated 훅은 keep-alive 컴포넌트에서만 사용할 수 있습니다. 일반 컴포넌트에서는 사용할 수 없습니다.
  • activated 훅은 컴포넌트가 처음 렌더링될 때에도 호출됩니다.
  • activated 훅은 컴포넌트 렌더링 과정에 영향을 미치지 않습니다. 렌더링 과정 중에 수행해야 하는 작업은 다른 훅을 사용해야 합니다.

5. activated 훅과 함께 사용할 수 있는 다른 훅

  • deactivated: keep-alive 컴포넌트가 비활성화될 때 호출됩니다.
  • beforeEnter: keep-alive 컴포넌트가 활성화되기 직전에 호출됩니다.
  • beforeLeave: keep-alive 컴포넌트가 비활성화되기 직전에 호출됩니다.