解决使用Vue Router实现页面跳转时的过渡动画出现的页面加载空白的问题

今天我在写vue项目的时候,想要给我的页面跳转加一个过度动画,让其看起来更加优美一些,当我使用完之后,发现在路由跳转的时候出现了页面的空白,即使当我点击回退按钮的时候,也不能加载上一个页面,经过我在网上的查找,我发现了问题的所在并将其解决,特此记录

首先给大家看一下我的代码(app.vue)

<template>
  <router-view v-slot="{ Component }">
    <transition name="scale" mode="out-in">
      <component :is="Component" />
    </transition>
  </router-view>
</template>
/* 进入过渡的起始状态 */
.scale-enter {
  transform: scale(0.8);
  opacity: 0;
}

/* 进入过渡的活动状态 */
.scale-enter-active {
  transform: scale(1);
  opacity: 1;
  transition: all 0.3s ease;
}

/* 离开过渡的起始状态 */
.scale-leave {
  transform: scale(1);
  opacity: 1;
}

/* 离开过渡的活动状态 */
.scale-leave-active {
  transform: scale(0.8);
  opacity: 0;
  transition: all 0.3s ease;
}

代码的本身呢,是没有大的问题,是可以正常执行的,但是为什么我的这里出现了页面的跳转之后会出现白页面的问题呢,是因为我的单文件组件(.vue 文件)里,没有保证模板部分只有一个根元素(不包括template标签)

当然可能有的小伙伴是因为别的原因,可能我没遇到,大家也可以发在评论区我们一起相互讨论学习

错误示范:

<template>
  <!-- 这里有多个根元素,会导致问题 -->
  <div>第一个元素</div>
  <div>第二个元素</div>
</template>

正确示范:

<template>
  <!-- 用一个根元素包裹所有内容 -->
  <div>
    <div>第一个元素</div>
    <div>第二个元素</div>
  </div>
</template>

当然了,这个的原因呢是因为我的坏习惯导致出现的问题,这里呢,我给同样和我有一样不好习惯的小伙伴一个建议啊,例如我们创建了一个homePage.vue文件页面的时候,第一件事情就是可以在template标签里面写上一个<div class="homePage"></div>的根标签,我相信不止这样的事情,肯定还有很多其他的情况下因为根标签有多个而出现页面bug的,而像这种小细节问题出现的bug很多时候反而不容易发现,可能找了好久也没发现,所以,为了避免一些不必要的bug,大家可以提前规范一下这些

同时这里和大家分享一下,过渡动画的而一篇博客,大家可以直接去copy

vue-router配合transition完成路由切换动画_vue router transition-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值