动态组件——即组件动态切换
有些场景中,需要在两个组件间来回切换,比如Tab界面:
通过Vue中的 <component>
元素和特殊的 is
属性相结合,同时,将被注册的组件名或导入的组件对象作为:is的值传入即可。也可以使用is属性基于模板对象来创建一般的HTML元素。
当使用 <component :is="...">
来实现在多个组件间切换时,被切换掉的组件会被卸载,这样会导致组件切换前的状态丢失。为保持组件切换的历史状态,可通过 <KeepAlive>
组件强制被切换掉的组件仍然保持“存活”的状态。
<KeepAlive>
<component :is="activeComponent" />
</KeepAlive>
// App.vue
<script setup>
import Home from './Home.vue'
import Posts from './Posts.vue'
import Archive from './Archive.vue'
import {
ref } from 'vue'
const currentTab = ref('Home')
const tabs = {