Есть такой свойство, is, указываете в него компонент и нет проблем.
<Component :is="currentComponent">
И в нужных методах меняете этот currentComponent на компонент, который нужно показать.
Вот примерчик набросал
https://jsfiddle.net/set9x5fj/<div id="app">
<h2>Toster</h2>
<Component :is="currentComponent"></Component>
<input type="button" @click="showComp1" value="showComp1">
<input type="button" @click="showComp2" value="showComp2">
</div>
Vue.component("comp1", {
template: "<div>Hello from comp1</div>"
});
Vue.component("comp2", {
template: "<div>Hello from comp2</div>"
});
new Vue({
el: "#app",
data: {
currentComponent: "comp1"
},
methods: {
showComp1() {
this.currentComponent = "comp1";
},
showComp2() {
this.currentComponent = "comp2";
}
}
})