解决vue3 路由切换后,页面不显示内容,刷新后正常显示(路由切换白屏的问题)

在Vue.js应用中,当页面长时间无操作后,通过导航切换路由虽然地址栏改变,但页面不会显示更新内容。解决方法是在router-view中添加key属性,动态绑定如路由路径加随机数,确保每次切换都不同。如果使用了布局(layout),需在layout的主页面中修改,而不是在main.vue,以免引起其他问题。
摘要由CSDN通过智能技术生成

正常使用时切换路由都可以正常地切换页面,但是页面长时间无操作就会浮现该问题。使用导航切换路由,路由可以正常跳转,地址栏有变化,但页面不显示。
排查:
1、控制台无报错
2、切换的各级页面均有根标签节点包裹
解决办法:
在router-view 中给路由添加key标识。
!!注意:有使用layout封装布局的,是在layout下的主页面中的 router-view 添加标识,不是在src根目录下main.vue中修改(在这个文件修改会造成每次切换路由导航标签都会收起)

<script setup lang="ts">
import { useTagsViewStore } from "@/store/modules/tagsView";

import { useRoute} from "vue-router";
const tagsViewStore = useTagsViewStore();

const route = useRoute();
const key = computed(() => {
  return route.path + Math.random();
});
</script>

<template>
  <section class="app-main">
    <router-view v-slot="{ Component, route }" :key="key">
      <transition name="router-fade" mode="out-in">
        <keep-alive :include="tagsViewStore.cachedViews">
          <component :is="Component" :key="route.fullPath" />
        </keep-alive>
      </transition>
    </router-view>
  </section>
</template>
  • 25
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值