<router-view v-slot="{ Component }">
<transition name="fade" mode="out-in" appear>
<keep-alive>
<component :is="Component" />
</keep-alive>
</transition>
</router-view>
/* 路由切换动画 */
/* fade-transform */
.fade-leave-active,
.fade-enter-active {
transition: all 0.5s;
}
/* 可能为enter失效,拆分为 enter-from和enter-to */
.fade-enter-from {
opacity: 0;
transform: translateY(-30px);
}
.fade-enter-to {
opacity: 1;
transform: translateY(0px);
}
.fade-leave-to {
opacity: 0;
transform: translateY(30px);
}
transition 标签元素有一个mode属性,用于设置动画过渡效果。默认是同时进行元素的进入和离开。元素绝对定位position: absolute;不会有错位问题。
in-out,新元素先进行过渡进入,完成之后当前元素过渡离开。
out-in,当前元素先过渡离开,完成之后新元素过渡进入。在transition标签还有一个appear属性
是否对初始渲染使用过渡。 * 默认:false