设想一个场景,我们需要几个不同的tab,单击某项tab时需要加载对应的组件。这个时候,可以通过类似如下的代码实现:
<button @click="activeTab = 'HomeTab'">Home</button>
<button @click="activeTab = 'ProductTab'">Product</button>
<button @click="activeTab = 'PaymentTab'">Payment</button>
<HomeTab v-if="activeTab === 'HomeTab'" />
<ProductTab v-if="activeTab === 'ProductTab'" />
<PaymentTab v-if="activeTab === 'PaymentTab'" />
在Vue中,还可以通过更为优雅的方式,动态组件来实现:
<component :is=@activeTab />
同时可以使用keep-alive标签来缓存某个组件,这样在tab之间切换时就不会丢失用户输入了:
<keep-alive>
<component :is="activeTab" />
</keep-alive>