v-leave-to: 2.1.8版及以上 定义离开过渡的结束状态。在离开过渡被触发一帧后生效(于此同时 v-leave 被删除),在 transition/animation 完成之后移除。
对于这些在 enter/leave 过渡中切换的类名,v- 是这些类名的前缀。使用 <transition name=”my-transition” 可以重置前缀,比如 v-enter 替换为 my-transition-enter。
CSS过度
常用的过渡都是使用 CSS 过渡。以下为示例代码。
<div id="app2">
<button @click="show = !show">toggle css</button>
<transition name="slide-fade">
<p v-if="show">CSS 过渡</p>
</transition>
</div>
new Vue({
el:'#app2',
data:{
show:true
}
})
.slide-fade-enter-active{
transition: all .3s ease;
}
.slide-fade-leave-active{
transition: all .8s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}
.slide-fade-enter, .slide-fade-leave-to{
transform: translateX(100px);
opacity: 0;
}
运行结果

点击按钮就会看到动画效果。
CSS动画
CSS 动画用法同 CSS 过渡,区别是在动画中 v-enter 类名在节点插入 DOM 后不会立即删除,而是在 animationend 事件触发时删除。
示例: (省略了兼容性前缀)
<div id="app3">
<button @click="show = !show">toggle css</button>
<transition name="bounce">
<p v-if="show">css 动画</p>
</transition>
</div>
new Vue({
el:'#app3',
data:{
show:true
}
})
.bounce-enter-active{
animation: bounce-in .5s;
}
.bounce-leave-active{
animation: bounce-in .5s reverse;
}
@keyframes bounce-in {
0%{
transform: scale(0);
}
50%{
transform: scale(1.5);
}
100%{
transform: scale(1);
}
}
运行结果:

自定义过渡类名
我们可以通过以下特性来自定义过渡类名:
enter-class
enter-active-class
enter-to-class (>= 2.1.8 only)
leave-class
leave-active-class
leave-to-class (>= 2.1.8 only)










