<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="transition-components-demo" class="demo">
<input v-model="view" type="radio" value="v-a" id="a" name="view"><label for="a">A</label>
<input v-model="view" type="radio" value="v-b" id="b" name="view"><label for="b">B</label>
<transition name="component-fade" mode="out-in">
<component v-bind:is="view"></component>
.component-fade-enter-active, .component-fade-leave-active {
transition: opacity .3s ease;
.component-fade-enter, .component-fade-leave-active {
el: '#transition-components-demo',
template: '<div>Component A</div>'
template: '<div>Component B</div>'