목차
반응형
Vue3에서 keep-alive
는 컴포넌트의 상태를 보존하고 재사용할 수 있게 해주는 내장 컴포넌트다.
이 기능을 사용하면 Vue 인스턴스의 상태를 유지하면서 컴포넌트를 비활성화하고, 나중에 다시 활성화할 수 있다.
keep-alive
는 성능 최적화에 유용하며, 특히 사용자가 여러 페이지 간에 이동할 때 컴포넌트의 상태를 유지해야 하는 경우에 매우 효과적이다.
keep-alive
의 기능
- 컴포넌트 상태 보존:
keep-alive
는 내부에 포함된 컴포넌트의 상태를 메모리에 보존한다. 이를 통해 사용자가 컴포넌트를 다시 방문할 때 이전 상태를 그대로 복원할 수 있다. - 성능 최적화: 컴포넌트를 매번 새로 생성하는 대신 재사용함으로써 렌더링 성능을 향상시킨다.
- 라이프 사이클 훅 활용:
keep-alive
를 사용하면 컴포넌트가 활성화되거나 비활성화될 때 추가적인 라이프 사이클 훅(activated
와deactivated
)을 활용할 수 있다.
사용 사례
- 탭이나 페이지 이동 시, 각 탭의 상태를 유지하고 싶을 때.
- 데이터를 불러오는 데 시간이 많이 소요되는 컴포넌트의 상태를 유지하고 싶을 때.
예시 코드
<template>
<keep-alive>
<ComponentA v-if="currentTab === 'A'" />
<ComponentB v-if="currentTab === 'B'" />
</keep-alive>
</template>
<script setup>
import { ref } from 'vue';
import ComponentA from './ComponentA.vue';
import ComponentB from './ComponentB.vue';
const currentTab = ref('A');
</script>
이 예시에서는 ComponentA
와 ComponentB
가 keep-alive
로 감싸져 있다. 사용자가 탭 사이를 전환할 때, 각 컴포넌트의 상태는 keep-alive
에 의해 보존되므로, 탭으로 다시 돌아왔을 때 이전 상태가 유지된다.
결론
keep-alive
는 Vue 애플리케이션에서 컴포넌트의 상태를 보존하고 재사용하는 데 매우 유용하다.
반응형