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

vue2和vue3动态引入路由,权限控制

后端返回的路由结构(具体路由可以本地模拟)

// 此路由自己本地模拟即可
const menus = [{"title": "动态路由","meta": "{\"title\":\"动态路由\",\"noCache\":true}","component": "/test/test.vue","name": "test","path": "/test"
}]

1、vue2 

export const loadView = (view) => {// 此处是在views下创建一个文件夹test,文件夹下有一个test.vue文件的结构return (resolve) => require([`@/views${view}`], resolve)
}menus.forEch(v=>v.component = loadView(path)) //此处就是动态引入路由const router = new Router({scrollBehavior: () => ({ y: 0 }),routes: []
})router.addRoutes(menus)

2、vue3

const modules = import.meta.glob('@/views/**/*.vue')
menus.forEch(v=>v.component = modules[`/src/views${v.component}`]) //此处就是动态引入路由
const router = new Router({scrollBehavior: () => ({ y: 0 }),routes: []
})
router.addRoute(menus)

这个动态路由会有很多易错点:

(1)项目是否有支持@根目录路径(根据项目具体自己调整)

(2).vue后缀,根据自己的实际路径做调整,发现问题的时候一步一步打印日志排查

(3)views下的层级关系,此案例是在views下创建了一个文件夹test,在test文件夹下创建test.vue文件

总结(必看)

自行可拓展根据标识动态引入,很多人其实都是卡在如何动态引入组件这一步,以为用import就能动态引入,其实是错误的,因为动态路径解析: 使用 import() 时,路径解析是静态的,只能针对具体文件执行一次导入操作。批量加载: import.meta.glob() 支持通配符路径匹配,可以一次性获取多个模块并按需加载,vue2和vue3的引入方式会有点小区别

http://www.lryc.cn/news/468253.html

相关文章:

  • Spring Boot:植物健康的智能守护者
  • 红黑树 学习笔记
  • linux更改系统时间
  • B站C#刘铁猛笔记
  • 如何使用信号发生器产生正弦波并用数字示波器进行测量
  • XJ04、消费金融|授信基本概念及其流程设计
  • 儿童预防接种预约微信小程序springboot+论文源码调试讲解
  • nginx 修改配置
  • 孤岛架构在安全性方面
  • COSCon'24 志愿者招募令:共创开源新生活!
  • vscode使用make编译c的问题
  • 管家婆财贸ERP BB019.操作员制单日期控制
  • 从 Vue 2 到 Vue 3:全面升级指南
  • Apache paimon表操作实战-5
  • 阿里云用STS上传oss的完整程序执行流程图 和前端需要哪些参数uniapp
  • 决策树方法根据指定条件筛选方案
  • 多特征变量序列预测(四) Transformer-BiLSTM风速预测模型
  • 【开源免费】基于SpringBoot+Vue.JS蜗牛兼职平台 (JAVA毕业设计)
  • Ajax笔记
  • 软考:缓存分片和一致性哈希
  • 3109 体验积分值
  • 初识jsp
  • Ansible 的脚本 --- playbooks剧本
  • Windows 死机时 系统错误日志分析与故障排除
  • 基于pytorch搭建CNN
  • C#实现与Windows服务的交互与控制
  • Java和Ts构造函数的区别
  • 植物健康,Spring Boot来助力
  • 百度文心一言接入流程-java版
  • Java 11 新特性深度解析与应用实践