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

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.lryc.cn/news/2387093.html

相关文章:

  • git子模块--命令--列表版
  • C++(4)
  • 构建版本没mac上传APP方法
  • 如何解决大模型返回的JSON数据前后加上```的情况
  • 本地处理 + GPU 加速 模糊视频秒变 4K/8K 修复视频老旧素材
  • 服务器异常数据问题解决 工具(tcpdump+wireshark+iptables)
  • 综合实现案例 LVS keepalived mysql 等
  • 【QT】对话框dialog类封装
  • 2025/5/26 学习日记 基本/扩展正则表达式 linux三剑客之grep
  • 【后端高阶面经:消息队列篇】29、Kafka高性能探秘:零拷贝、顺序写与分区并发实战
  • Spring Boot企业级开发五大核心功能与高级扩展实战
  • 在SpringBoot项目中策略模式的使用
  • 在 Docker 中启动 Jupyter Notebook
  • IP 地址反向解析(IP反查域名)原理与应用
  • CodeTop之LRU缓存
  • uboot常用命令之eMMC/SD卡命令
  • 【Kafka】编写消费者开发模式时遇到‘未解析的引用‘SIGUSR1’’
  • DeepSeek 赋能教育游戏化:AI 重构学习体验的技术密码
  • Docker run命令-p参数详解
  • 知识宇宙-学习篇:学编程为什么从C语言开始学起?
  • Mybatis-入门程序、 数据库连接池、XML映射配置文件、MybatisX
  • 互联网大厂Java求职面试:Spring Cloud微服务架构设计中的挑战与解决方案
  • BUUCTF [ZJCTF 2019]EasyHeap
  • 机器学习AI精准预测复合材料性能、材料结构设计优化;数据驱动加速新材料研发,百年难遇的组合打破科研壁垒!
  • apache http client连接池实现原理
  • 如何做好一份网络安全技术文档?
  • Android Studio 介绍
  • MD5加密(Java)
  • [攻防世界] easyphp writeup
  • 力扣热题100之LRU缓存机制