当前位置: 首页 > news >正文

vue3项目动态路由的相关配置踩坑记录

1.路由文件中引入store的报错解决 

import { useUserStore } from '@/stores/user' // 错误:此时 Pinia 未初始化const store = useUserStore() // 报错

解决方案:

import pinia,{ useUserStore } from '@/stores/user'  或者在路由前置守卫中调用useUserStore()

2..路由懒加载import中动态绑定变量问题,会报failed to resolve specificer 'xx.vue' 这个错误

component: () => import(route.component) //这种写法会报错

解决方案:

   使用 import.meta.glob 预先声明所有可能路径

const modules=import.meta.glob('@/views/**/*.vue')
component: modules[`/src/views/${route.component}.vue`] // 匹配映射

3.本地存储路由对象时component存储为空问题

原因:函数不可序列化
component: () => import('...') 是一个函数,而 localStorage 只能存储字符串(通过 JSON.stringify() 转换时会丢失函数)

解决方案:componet:存普通的字符串,最后在使用时再转换为路由懒加载的写法()=>import('...') 

4.动态路由添加完毕之后页面跳转空白问题

原因:使用 router.addRoute() 动态添加路由后立即跳转时,可能会遇到路由未完全加载导致跳转失败的问题

解决方案举例: next({ ...to, replace: true }) // 重试当前导航

router.beforeEach((to, from, next) => {if (需要动态路由且尚未加载) {loadDynamicRoutes().then(() => {next({ ...to, replace: true }) // 重试当前导航})} else {next()}
})

相关文章:

  • 每日算法 -【Swift 算法】Z 字形变换(Zigzag Conversion)详解与实现
  • 第二十章 TIM——基本定时器
  • Javascript 学习
  • leetcode2947. 统计美丽子字符串 I-medium
  • AGI大模型(32):LangChain实现RAG
  • 探秘 C++ 计数器类:从基础实现到高级应用
  • (Git) 稀疏检出(Sparse Checkout) 拉取指定文件
  • SpringCloud (3) 配置中心
  • 【AT32】 at32 软复位
  • 利用GeoTools实现导出MySQL地理数据表为shp格式
  • DHT11介绍
  • 对于Python虚拟环境的理解
  • YOLOv8模型剪枝笔记(DepGraph和Network Slimming网络瘦身)
  • C++(29):结构体
  • SpringBoot Day_03|数据校验|异常处理|日志级别|定时器
  • 位运算及其算法
  • 并发编程 之 可见性、原子性、volatile、synchronized、Java内存模型的深入剖析
  • Google机器学习实践指南(梯度下降篇)
  • 裸机任务调度框架、DMA、空闲中断
  • Linux安装SRILM
  • 企业免费邮箱/seo百科
  • 专业做装修设计的网站/网站收录查询网
  • 操作简单网站搭建费用/百度seo优化按年收费
  • 在线做任务的网站有哪些/品牌如何推广
  • 网站建设流程ppt/如何制作公司网页
  • 网络规划设计师教程(第2版)pdf/成都关键词优化服务