碰到一个奇葩的问题,进入特定页面后,跳转其他页面均会白屏,刷新后就会加载。
一开始以为的是组件的name和标签的不一致 但是router-view 通过name去跳转也可以
显示
<!-- <router-view></router-view> -->
显示
<router-view v-slot="{ Component }">
<component :is="Component" />
</router-view>
不显示
<!-- <router-view v-slot="{ Component }">
<transition name="fade-transform" mode="out-in">
<keep-alive :include="cachedViews">
<component :is="Component" />
</keep-alive>
</transition>
</router-view> -->
加了也不显示
这个才是罪魁祸首呀
<router-view v-slot="{ Component }">
<!-- <transition name="fade-transform" mode="out-in"> -->
<component :is="Component" />
<!-- </transition> -->
</router-view>
可以显示
<!-- <transition name="fade-transform" mode="out-in"> -->
<keep-alive :include="cachedViews">
<component :is="Component" />
</keep-alive>
<!-- </transition> -->
</router-view>
解决
如果在App.vue添加了transition过渡动画,那么需要注意在模板中<template></template>下应当只包含一个标签,否则会出现空白的情况.
目前项目当中template属性下有多个根元素,需要一个个页面排查,直接把mode属性去掉即可
# 查看组件名
# 参考:
https://blog.csdn.net/qq_43536071/article/details/126769064
https://www.cnblogs.com/FreezeNow/p/17252801.html