Menu Close

How to smoothly animate v-show in Vue.js?

Sometimes, we want to smoothly animate v-show in Vue.js.

In this article, we’ll look at how to smoothly animate v-show in Vue.js.

How to smoothly animate v-show in Vue.js?

To smoothly animate v-show in Vue.js, we can use the transition component.

For instance, we write

<template>
  <div>
    <transition name="fade" mode="out-in">
      <div key="3" v-if="show">
        <div class="box yellow"></div>
      </div>
      <div key="1" v-if="!show">
        <div class="box blue"></div>
      </div>
    </transition>
  </div>
</template>

to add the transition component to 2 divs.

We set the name of the transition effect to get the effects to apply from the CSS styles of the classes that have name as the prefix.

We put the elements we want to animate inside.

And we add v-if to each to render the elements conditionally.

Since they’re in the transition component, we see the animation effect applied when we transition between the elements inside.

Conclusion

To smoothly animate v-show in Vue.js, we can use the transition component.

Posted in vue