Vue.js的transition过渡动画是什么?如何实现?

Vue.js 的 transition 组件用于实现过渡动画。它可以给任何元素和组件添加进入/离开过渡。

使用 transition 组件的主要步骤:
1、 设置要过渡的元素。可以是 transition 包裹的元素,也可以是动态组件。

html
<!-- 包裹元素 -->
<transition>
  <div v-if="show">Hello</div>
</transition>

<!-- 动态组件 --> 
<transition name="fade" mode="out-in">
  <component :is="componentName"></component> 
</transition>  

2、 设置过渡的类名,Vue.js 会自动添加相关的过渡效果。

  • .v-enter:进入过渡的开始状态
  • .v-enter-active:进入过渡生效状态
  • .v-enter-to:进入过渡的结束状态
  • .v-leave:离开过渡的开始状态
  • .v-leave-active:离开过渡生效状态
  • .v-leave-to:离开过渡的结束状态

我们可以为这些状态绑定 CSS 样式实现动画:

css
.fade-enter-active, .fade-leave-active {
  transition: opacity .5s
}
.fade-enter, .fade-leave-to {
  opacity: 0
}

3、 设置 Transition 的 mode:

  • in-out:新元素先进行过渡,完成之后当前元素过渡离开。
  • out-in:当前元素先进行过渡,完成之后新元素过渡进入。

4、 监听 transition 事件:

  • before-enter
  • enter
  • after-enter
  • enter-cancelled
  • before-leave
  • leave
  • after-leave
  • leave-cancelled

可以在事件中执行 JavaScript 代码:

html
<transition
  v-on:before-enter="beforeEnter"
  v-on:enter="enter"
  v-on:after-enter="afterEnter"
>
</transition>

以上就是 Vue.js transition 组件实现过渡动画的主要步骤和注意事项。熟练掌握它可以为我们的 Vue 应用添加更好的视觉体验和交互。