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

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()}
})
http://www.xdnf.cn/news/8242.html

相关文章:

  • LeetCode Hot100 (双指针)
  • 什么是出入库管理系统?2025年五大出入库管理软件推荐
  • 部署TOMEXAM
  • (tarjan 缩点)洛谷 P3119 USACO15JAN Grass Cownoisseur G 题解
  • 文章被检测出是AI写的怎么办?
  • 手写Tomcat(二)—Tomcat简化模型架构
  • 2023河南CCPC省赛vp部分补题
  • 电子墨水电子阅读器行业2025数据分析报告
  • 如果教材这样讲--碳膜电阻、金属氧化膜电阻、金属膜电阻、保险丝电阻、绕线电阻的区别和用途
  • 618服饰大促新打法:在抖音解锁增长三连击
  • 深入理解 PlaNet(Deep Planning Network):基于python从零实现
  • 50、js 中var { ipcRenderer } = require(‘electron‘);是什么意思?
  • Android System UI 深度解析:从架构演进到车载 / TV 场景的全维度定制
  • go中len和sizeof区别
  • 初学c语言18(自定义类型:结构体)
  • 【DAY26】函数专题1:函数定义与参数
  • 供应链管理:联合国/我国 41个产业/工业大类包括什么/代表公司
  • 【25软考网工】第七章(4)DHCP、DNS
  • 深入理解 BFC:网页布局的关键机制
  • 其他有关Oracle BUFFER CACHE的优化思路
  • Java Spring Boot 集成 Redis 存储 Session:对象修改与 Redis 值更新
  • 2025年排名前五的费控管理软件
  • 封装红黑树实现mymap和myset
  • 密码分析学:从理论框架到实战攻防的全维度解析
  • 编程日志5.17
  • AttributeError: module ‘cv2.dnn‘ has no attribute ‘DictValue‘错误解决方法
  • Redis 的速度为什么这么快
  • Windows命令实用工具——tcping 命令工具安装及基础使用
  • 帕鲁杯证书在线生成-仅供娱乐
  • 车载网关设计原则 ---- 透明性与诊断可追溯性