vue3编程-import.meta.glob实现动态路由(菜单)
创始人
2024-12-01 00:35:34
0次

import.meta.glob 是vite提供的批量懒加载组件的方法

本地开发环境:

const modules = import.meta.glob('../views/**/*.vue') 

 

这段代码返回的modules是一个Map:

key是vue文件的相对路径,值是一个函数,将函数打印出来,如下:

() => import("/src/views/xxxxx.vue?t=1721728770051")

 本质上是一个按需加载的函数。

打包构建后: 

  vite本地构建使用的是esbuild,本地服务之所以能够识别.vue文件,是因为本地服务做了支撑。本地服务将.vue文件转换为了.js文件:

本地服务器返回了javascript代码,这个也容易实现,服务器判断如果是.vue结尾的,对源码进行编译响应为js即可。

 然而,打包构建vite使用的是rollup。生产服务器不会支持对.vue文件的处理。

打包构建后的代码,modules的key是不变的。但是值函数却变了,里面导入的是构建后的.js文件。

应用:

       在实现动态菜单的时候,需要从后端获取路由数据,然后因为涉及到按需加载:

/**    * 动态导入组件    * @param url    * @returns    */   function dynamicImport(url:string){     return ()=>import(url)   }     /**    * route的初始化处理    * @params routers - ajax请求返回的结果    */   async function routeInit(routers:RouteType[]){     routers.forEach(route =>{         if(route.component === 'ConsoleLayout'){           route.component = ConsoleLayout         }else{           route.component = dynamicImport(route.component as string)         }         if(route.children && route.children.length >0 ){           routeInit(route.children)         }       })       return routers   }

component需要按需加载,因此需要将route.component的值变为()=>import()的形式。然而,功能实现后才发现,构建后会存在.vue的问题。

因此,解决办法就是import.meta.glob。

const modules = import.meta.glob('../views/**/*.vue')   function loadView(url: string) {   return modules[`../views/${url}.vue`] }  route.component = loadView(name as string)  

这样就能够实现兼容本地和打包构建后的动态菜单的功能,而原理就是上面分析的。

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...