App.vue에서 라우터 이동을 담당하는 router-view객체는 컴포넌트를 slot 으로 네스팅하여 template을 통째로 전달할 수 있다.
vue의 내장객체인 메타 컴포넌트에 is속성으로 Component에 각 template을 전달하기 위해서는 v-slot을 사용하여 Component를 네스팅 해줘야하며 Component의 개별명칭은 라우터 파일에 정의하면 된다.
//App.vue
<template>
<layout>
<router-view v-slot="{ Component }">
<keep-alive include="KeepAlive">
<component
:is="Component"
/>
</keep-alive>
</router-view>
<loading-page />
</layout>
</template>
물론 router-view객체에 Component를 네스팅하지 않고도 화면이동 및 렌더링은 가능하다.
하지만 v-slot으로 Component를 네스팅함으로써
화면에 렌더링 될 실제 뷰페이지를 동적으로 제어할 수 있고, 뷰페이지의 template을 직접적으로 전달하여 App.vue 구조를 가시적으로 확인할 수 있다.