<template> <div id="app"> <ul> <li v-for="(tab,index) in tabs" @click="toggle(index,tab.view)" :class="{active:active==index}"> {{tab.type}} </li> </ul> <!--:is实现多个组件实现同一个挂载点--> <component :is="currentView"></component> </div> </template> <script> import tab1 from './components/tabs/tab1.vue' import tab2 from './components/tabs/tab2.vue' export default { name: 'app', data(){ return { active:0, currentView:'tab1', tabs:[ { type:'tab1', view:'tab1' }, { type:'tab2', view:'tab2' } ] } }, methods:{ toggle(i,v){ this.active=i; this.currentView=v; } }, components:{ tab1, tab2 } } </script>