JSFiddle - React, Tailwind, and code Playground

by skirtle

HTML

<script src="https://unpkg.com/[email protected]/dist/vue.js"></script>
<div id="demo">
  <button v-on:click="show = !show">
    Toggle
  </button>
  <transition name="fade">
    <p v-if="show">hello</p>
  </transition>
</div>

CSS

.fade-enter-active, .fade-leave-active {
  transition: opacity 2s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

JavaScript

const Transition = Vue.component('Transition')
const { props, render } = Transition

Transition.render = function () {
  this.$options.propsData.duration = 0
  return render.apply(this, arguments)
}

props.duration = {
  type: props.duration,
  default: 0
}

new Vue({
  el: '#demo',
  data: {
    show: true
  }
})