vue3 router-view transition
时间: 2025-02-03 18:27:53 浏览: 39
### Vue 3 中 `router-view` 结合 `transition` 实现过渡效果
在 Vue 3 中实现页面切换时的过渡效果,可以通过 `<transition>` 或者 `<transition-group>` 来包裹 `<router-view>`。这使得当路由发生变化时能够应用 CSS 动画或 JavaScript 驱动的动画。
#### 示例代码展示
下面展示了如何通过组合 `<transition>` 和 `<keep-alive>` 来增强用户体验并优化性能:
```html
<template>
<div id="app">
<!-- 使用 transition 组件 -->
<transition name="slide-fade" mode="out-in">
<!-- keep-alive 可选用于缓存组件状态 -->
<keep-alive>
<router-view></router-view>
</keep-alive>
</transition>
</div>
</template>
<script setup lang="ts">
// 此处省略 script 内容,因为主要关注模板部分
</script>
<style scoped>
/* 定义进入和离开动画 */
.slide-fade-enter-active {
transition: all .3s ease;
}
.slide-fade-leave-active {
transition: all .3s cubic-bezier(1, 0.5, 0.8, 1);
}
.slide-fade-enter-from,
.slide-fade-leave-to {
transform: translateX(20px);
opacity: 0;
}
</style>
```
此段代码实现了从右向左滑入的新页面以及淡出旧页面的效果[^1]。值得注意的是,在实际项目里可能还需要考虑更多细节,例如针对不同类型的页面采用不同的转场逻辑等。
为了确保良好的兼容性和灵活性,建议开发者根据具体需求调整样式类名及其对应的 CSS 属性值。此外,如果希望进一步提升效率,则可以在适当情况下利用 `include` 和 `exclude` 属性来控制哪些组件应该被 `keep-alive` 缓存[^2]。
阅读全文
相关推荐


















