即使mode=“out-in”,Vue.js组件也不会转换出

bf1o4zei  于 2023-08-07  发布在  Vue.js
关注(0)|答案(1)|浏览(113)

我对vue.js相对较新,并且一直试图在用户切换到新页面时让我的路由页面淡入淡出。我原以为用vue会很简单,但我一直在为此而烦恼。我找到的所有资源都表明,以下面的方式实现这一点是最简单的,就像我一样:
App.vue:

...
<template>
  <head>
    ...
  </head>
  
    <header>
      <nav>
        <RouterLink to="/">Home</RouterLink>
        <RouterLink to="/committees">Committees</RouterLink>
      </nav>
    </header>
    
  <Transition name="fade" mode="out-in"><RouterView/></Transition>
      
</template>

<style>
.fade-enter-active,
.fade-leave-active {
  transition: opacity .5s ease-in-out;
}

.fade-enter-from, 
.fade-leave-to {
  opacity: 0;
}

...

</style>

字符串
这适用于淡入新组件,但旧组件不会淡出。页面立即变为空白,然后新组件淡入。我试过所有的css和html版本,但都没有用。RouterView是否实际上从未淡出,因为组件只是切换,所以.fade-leave-to从未被触发?如果是这样的话,我如何才能实现我的最终目标淡出?如果不是,呃...漂亮的请帮帮忙!

pvabu6sv

pvabu6sv1#

manual是你的朋友:
要在路径组件上使用过渡并设置导航动画,您需要使用v-slot API:

<router-view v-slot="{ Component }">
  <transition name="fade">
    <component :is="Component" />
  </transition>
</router-view>

字符串

相关问题