问题:在路由中添加动画效果但是,当切换路由时,页面一片空白,这个问题困扰了我几天了,今天终于发现了它的问题,特来记录一下,以便参考
首先有这么一段代码
想在vue的路由跳转里面加入动画效果,于是便这样写
// 提示: name="fade-transform" fade-transform是css类名,必须要写的
<el-main>
<router-view v-slot="{ Component, route }">
<transition appear name="fade-transform" mode="out-in">
<keep-alive>
<component :is="Component" :key="route.path" />
</keep-alive>
</transition>
</router-view>
</el-main>
这么写看着是没有什么问题,而且控制台也不会报错,但是当你切换路由的时候这个问题就显现出来的
解释:
- 首先你要知道的是
transition
是只支持一个单标签 - 如果你写过vue2,那么你一定记得,在vue2中写 .vue文件时,是只能有一个根元素
<tamplate><div></div></template>
,那么你这样写是没有问题的 - 但是如果你写的vue3,那么你一定知道,vue3在 .vue文件中是支持多个根元素的
- 所以,但你这么来写时,再结合上面 的第一句话,你就能理解为什么会出现这个问题了
结论
更改现在的 .vue文件,全都改成单标签
发现和解决问题是真的爽啊,欢迎大家讨论,哈哈~