JSFiddle - React, Tailwind, and code Playground
by Lee Sun-Hyoup
HTML
<div id="app">
<transition name="fade" mode="out-in">
<keep-alive>
<component :is="currentView" keep-alive></component>
</keep-alive>
</transition>
<button @click="currentView = 'component-one'">component one</button>
<button @click="currentView = 'component-two'">component two</button>
</div>
CSS
.fade-enter-active, .fade-leave-active {
transition: opacity .5s
}
.fade-enter, .fade-leave-to {
opacity: 0
}
JavaScript
Vue.component('component-one', {
template: '<div><input></div>'
})
Vue.component('component-two', {
template: '<div>two</div>'
})
new Vue({
el: '#app',
data: {
currentView: 'component-one'
}
})