#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
4 min read
Question 19 of 37medium

How do Transitions work in Vue?

Animating elements entering and leaving.

What You'll Learn

  • Transition component
  • CSS transitions
  • JavaScript hooks

Basic Transition

code.txtVUE
<template>
  <button @click="show = !show">Toggle</button>
  <Transition name="fade">
    <p v-if="show">Hello</p>
  </Transition>
</template>

<style>
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s ease;
}

.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}
</style>

Transition Classes

code.jsJavaScript
v-enter-from    → v-enter-active → v-enter-to
v-leave-from    → v-leave-active → v-leave-to

TransitionGroup for Lists

code.txtVUE
<TransitionGroup name="list" tag="ul">
  <li v-for="item in items" :key="item.id">
    {{ item.text }}
  </li>
</TransitionGroup>

<style>
.list-enter-active,
.list-leave-active {
  transition: all 0.5s ease;
}
.list-enter-from,
.list-leave-to {
  opacity: 0;
  transform: translateX(30px);
}
</style>

JavaScript Hooks

code.txtVUE
<Transition
  @before-enter="onBeforeEnter"
  @enter="onEnter"
  @leave="onLeave"
>
  ...
</Transition>