Vue3 transition过渡模式下元素丢失问题

2025-04-29  本文已影响0人  塞风

先上代码:

<template>
  <div class="main">
    <router-view v-slot="{ Component, route }">
      <transition name="slide-fade" mode="out-in">
        <keep-alive>
          <component :is="Component" :key="route.path"></component>
        </keep-alive>
      </transition>
    </router-view>
  </div>
</template>

1.问题

项目使用vue3.5+vue-router4.5,在做路由跳转过渡效果时,出现奇葩问题:从首页跳转到其他页面后,div.main的子元素完全丢失,导致页面空白!若是其他页面之间的来回跳转,完全没问题,过渡效果也有。

2.方案

开始找原因,网上说:

那我emo了,为啥其他页面跳转没问题,唯独从首页跳转其他页面就空白了呢?

3.原因

经过排查,发现首页的代码如下:

<template>
<!-- <div class="txt">dashboard</div> -->
 <div class="txt">
    dashboard
    ....
</div>
</template>

把第一行的注释代码<div class="txt">dashboard</div>移除解决问题

4.解释

上一篇 下一篇

猜你喜欢

热点阅读