Vue路由切换时如何实现平滑过渡动画?
我在用 Vue 3 + Vue Router 做页面切换,想加个淡入淡出的过渡效果,但试了 transition 包 router-view 后动画根本不触发,页面直接闪过去。是不是我写法有问题?
这是我的代码:
<template>
<transition name="fade" mode="out-in">
<router-view />
</transition>
</template>
<style scoped>
.fade-enter-active { transition: opacity 0.3s; }
.fade-enter-from { opacity: 0; }
.fade-leave-to { opacity: 0; }
</style>
或者干脆去掉 scoped,或者用 ::v-deep 包裹这些类名。应该能用。
fade-leave-active,导致离开时没有过渡效果,Vue 3 的transition要求leave-active必须存在。修复方案: