<div id="root">
  <button @click="handleClick">切换</button>
  <transition name="fade">
    <div v-show="show">hello world</div>
  </transition>
</div>
.fade-enter{
  /*第一帧,opacity是0,第二帧开始被移除,即变成1,*/
  opacity: 0
}
.fade-enter-active{
  /*当监控到opacity变化的时候(即从0到1),给2s的过渡*/
  transition: opacity 1s;
}

.fade-leave-to{
  /*首先,opacity是1,离开的第二帧变成0,*/
  opacity: 0
}
.fade-leave-active{
  /*当监控到opacity变化的时候(即从1到0),给2s的过渡*/
  transition: opacity 1s;
}


/*简化代码*/
/*
.fade-enter,
.fade-leave-to{
  opacity: 0;
}

.fade-enter-active,
.fade-leave-active{
  transition: opacity 2s;
}
*/
var vm = new Vue({
  el: '#root',
  data: {
    show: true
  },
  methods: {
    handleClick() {
      this.show = !this.show
    }
  }
})

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.min.js