位置: IT常识 - 正文

记录vue-router跳转页面空白问题(vue-router跳转)

发布时间:2024-01-04
记录vue-router跳转页面空白问题

推荐整理分享记录vue-router跳转页面空白问题(vue-router跳转),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue$router,vuerouter跳转原理,vue route跳转,vuerouter跳转原理,vue的router跳转,vuerouter跳转原理,vue的router跳转,vuerouter跳转原理,内容如对您有帮助,希望把文章链接给更多的朋友!

vue- router里踩坑太多,全记录在这里,持续更新

1.父组件中要配置路由出口 RouterView<template> <div class="main"> <router-view></router-view> </div></template>2.检查路由表配置子路由路径 不要加 /routes配置项名称 不要写成 routeexport default new Router({ routes: [ // 1.这里不要写成route,注意是复数! { path: '/', name: 'HelloWorld', component: HelloWorld }, path: '/hi', component: Hi, children: [ // 2.子路由路径 不要加 / {path: '/hi2', component: Hi2}, // 错误写法 {path: 'hi3', component: Hi3}。// 正确写法 ] } ]})

component配置项

component配置项名称 不要写成 components中间路由跳转重定向,也要配置 component

layout 这个路由跳转后重定向到 ‘/user/manage’,虽然这个路由被重定向,但是组件也要注册,否则它的子组件 userManage 无法挂载。

错误写法:

{ path: '/user', name: 'user', redirect: '/user/manage', // 此路由跳转后重定向到 '/user/manage' children: [ { path: '/user/manage', name: 'userManage', component: () => import('@/views/user-manage'), } }记录vue-router跳转页面空白问题(vue-router跳转)

正确写法:

{ path: '/user', name: 'user', component: () => import('@/views/layout'), // 虽然这个路由被重定向,但是不要忘记 注册组件 redirect: '/user/manage', // 此路由跳转后重定向到 '/user/manage' children: [ { path: '/user/manage', name: 'userManage', component: () => import('@/views/user-manage'), } }3. 使用 transition组件后页面空白确保路由组件中只有一个根节点

虽然 Vue3的 template 中可以使用多个根节点,但是<transition>中的组件渲染无法设置动画的非元素根节点,换句话,<transition>中的组件中只能有一个根节点。 多个根节点会导致 过渡无法生效,组件无法切换就出现了空白页。

<template><div>A1</div><div>A1</div></template><template><div> <div>A1</div> <div>A1</div> </div></template>

注意:注释标签也是节点,例如以下属于多个根节点

<template><!-- 注释 --><div> <div>A2</div> <div>A2</div></div></template>component组件添加key值

于Vue机制的原因,为了性能会使用同一个元素。也就是说你切换时并不会更换掉整个元素,而是替换掉该元素中的内容的值,以此来切换,所以在这里需要添加key。

为了保证key的唯一性,可以使用route的path来作为key。

<router-view v-slot="{ Component,route }"> <transition name="fade" mode="out-in"> <component :is="Component" :key="route.path"/> </transition></router-view>添加动态路由后页面空白

使用 addRoutes 动态添加路由跳转后页面刷新空白

原因:(动态)异步路由添加,执行addRoutes是需要时间的,刚刚addRoutes()就执行next()立刻访问被添加的路由,然而此时addRoutes()没有执行结束,因而找不到刚刚被添加的路由导致白屏。

解决方法:使用 next({…to}),从新访问一次路由 (结束当前导航,执行新的导航,再次执行beforeEach回调,直到 {…to}路径找到为止,才执行next()

// 全局 前置守卫router.beforeEach(async(to, from, next) => { document.title = getPageTitle(to.meta.title) const hasToken = getToken() if (hasToken) { if (to.path === '/login') { next({ path: '/' }) } else { const hasGetUserInfo = store.getters.name if (hasGetUserInfo) { next() } else { try { await store.dispatch('user/getInfo') // next(path) 中断当前导航,执行新的导航 // 如果 addRoutes 并未完成,路由守卫会一层一层的执行,直到 addRoutes 完成,找到对应的路由才会放行 next({ ...to, replace: true }) // 正确写法 // next() // 错误写法 } catch (error) { await store.dispatch('user/resetToken') Message.error(error || 'Has Error') next(`/login?redirect=${to.path}`) NProgress.done() } } } } else { ...})其他

如果以上操作排查不出原因,可能是组件自身无法渲染,与路由切换无关,不要注册路由组件,直接开一个页面渲染该组件,再排查原因

本文链接地址:https://www.jiuchutong.com/zhishi/285092.html 转载请保留说明!

上一篇:【NLP相关】AI绘画api集合(nlp图)

下一篇:西孟加拉邦的双角犀鸟,印度 (© Debapratim Saha/Minden Pictures)(什么是西孟加拉邦首府)

  • 华为vr glass支持外置片源吗(华为vrglass支持鸿蒙3.0吗)

    华为vr glass支持外置片源吗(华为vrglass支持鸿蒙3.0吗)

  • 哔哩哔哩防沉迷的取消方法是什么(哔哩哔哩防沉迷系统怎么关闭)

    哔哩哔哩防沉迷的取消方法是什么(哔哩哔哩防沉迷系统怎么关闭)

  • vivos7和vivox50的区别有哪些(vivos7和vivix50哪个好)

    vivos7和vivox50的区别有哪些(vivos7和vivix50哪个好)

  • 微信号能查到本人的真实姓名吗(微信号能查到本人真实信息吗)

    微信号能查到本人的真实姓名吗(微信号能查到本人真实信息吗)

  • 华为热点只能连接一台怎么办(华为热点只能连接一台)

    华为热点只能连接一台怎么办(华为热点只能连接一台)

  • 台式电脑键盘灯按键开关(台式电脑键盘灯不亮了按哪个键恢复)

    台式电脑键盘灯按键开关(台式电脑键盘灯不亮了按哪个键恢复)

  • 微信当前账户存在安全风险,暂时不能收款怎么办(微信当前账户存在风险,暂时不能付款)

    微信当前账户存在安全风险,暂时不能收款怎么办(微信当前账户存在风险,暂时不能付款)

  • vivoy97能下载安装OTG吗(vivoy79a安卓版本8.0)

    vivoy97能下载安装OTG吗(vivoy79a安卓版本8.0)

  • 合约版和无需合约版有什么区别(无需合约版和合约版哪个更好)

    合约版和无需合约版有什么区别(无需合约版和合约版哪个更好)

  • 华为怎么判断内屏坏了(华为怎么判断内屏有没有坏)

    华为怎么判断内屏坏了(华为怎么判断内屏有没有坏)

  • 淘宝不支持7天能拒签吗(淘宝不支持7天无理由退货的类目)

    淘宝不支持7天能拒签吗(淘宝不支持7天无理由退货的类目)

  • 探探左右滑动代表什么(探探左右滑代表什么)

    探探左右滑动代表什么(探探左右滑代表什么)

  • 手机如何定时拍摄视频(手机如何定时拍抖音视频)

    手机如何定时拍摄视频(手机如何定时拍抖音视频)

  • ipad可以用鼠标吗(ipad可以用鼠标键盘玩的游戏)

    ipad可以用鼠标吗(ipad可以用鼠标键盘玩的游戏)

  • 趣步怎么安装不了(趣步怎么安装不了app)

    趣步怎么安装不了(趣步怎么安装不了app)

  • 华为手机nnbs什么意思(华为手机的n)

    华为手机nnbs什么意思(华为手机的n)

  • 如何退出微信群不被发现(如何退出微信群聊)

    如何退出微信群不被发现(如何退出微信群聊)

  • 红米手机如何恢复出厂设置(红米手机如何恢复备份数据)

    红米手机如何恢复出厂设置(红米手机如何恢复备份数据)

  • 微视保护模式怎么解除(微视保护模式怎么打开)

    微视保护模式怎么解除(微视保护模式怎么打开)

  • i38100跑分多少正常

    i38100跑分多少正常

  • 抖音不能评论了怎么办(抖音不能评论了怎么解除)

    抖音不能评论了怎么办(抖音不能评论了怎么解除)

  • ipada1396是几代(ipad型号a1396是第几代)

    ipada1396是几代(ipad型号a1396是第几代)

  • 卡片机是什么(卡片机是什么快门)

    卡片机是什么(卡片机是什么快门)

  • Win10如何去掉桌面图标有阴影?(Win10如何去掉桌面快捷方式的箭头)

    Win10如何去掉桌面图标有阴影?(Win10如何去掉桌面快捷方式的箭头)

  • 缴纳增值税账务处理
  • 留抵抵欠条件
  • 小规模不动产租赁税率5%
  • 小规模纳税人代扣代缴个人所得税
  • 开票可以只开大数据吗
  • 小规模纳税人免税账务处理
  • 借条时间到了怎么续
  • 押金收不回来没钱怎么办
  • 印花税小于1元显示无需申报
  • 电子发票丢失如何税前扣除
  • 大型机械进退场费属于机械台班单价组成部分
  • 外汇结款怎么办理
  • 出口增值税发票金额怎么开
  • 两所工资所得怎么扣税
  • 企业自主研发的成功案例
  • 企业向个人借款需要交印花税吗
  • 冲减上年的所得税费用入什么科目?
  • 商业地产会计核算流程
  • 房屋租赁合同样本书
  • 产品成本科目包括
  • 代销方式的特点
  • 工程项目产生的沙石怎么处理
  • 财政部的监管职责范围不包括
  • 上月开的销项专票如何做废?
  • 补提以前年度税费应该计入
  • 普通发票和增值税专用发票有什么异同
  • 原材料损失计入
  • 购车发票怎么做分录
  • 畅捷通t3怎么增加新的会计年度
  • 外贸公司有出口退税吗
  • 金蝶怎么一次性删除所有分录
  • mac怎么传文件到百度网盘上
  • 抵押,质押,留置的区别与联系
  • win11 恢复
  • PHP:oci_define_by_name()的用法_Oracle函数
  • php文件上传用什么请求方法
  • php读取txt内容
  • 个人投资所得税率是多少
  • 卡特迈国家公园地图
  • 房地产开发企业销售自行开发的房地产项目
  • typescriptlang
  • php面向对象编程
  • 关于laravel应用中的各个目录的作用,说法错误的是
  • react组件库有哪些
  • 前端css要掌握到什么程度
  • php命令大全
  • 自费出版违法吗
  • 垃圾清运费进入会计什么科目
  • 公司购买烟酒怎么入账
  • 公司买手表可以抵扣增值税吗
  • 固定资产折旧和无形资产摊销
  • 计入存货成本的税费
  • 劳务外包会计分录最新
  • 新准则下企业计划的内容
  • 计提折旧是哪个月的
  • 购入研发设备可以全额抵扣吗
  • 已抵扣的进项税额转出会计分录账务处理
  • 人力资源差额税率
  • 滞纳金的收取依据
  • 清洁服务公司账务处理
  • mysql分区表优劣分析
  • sql server设置自增
  • solaris newfs
  • 2t硬盘如何分区最合理
  • centos怎么修改文件权限
  • linux的用法
  • winxp系统介绍
  • ic_launcher.xml
  • win8系统怎么重新安装系统
  • win10系统升级后共享打印机不能用
  • chrome浏览记录保存多久
  • perl 运算
  • cocos2d怎么用
  • node js入门
  • js原生dialog
  • 从安卓设备导入
  • 什么叫开源库
  • 安卓 旋转屏幕
  • 陕西省电子税务局
  • 为什么要征收城乡土地
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号