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

【Vue3-vite】动态导入路由

route文件结构

  • router
    • module
    • index.ts

路由定义

// 需要导入的路由如下:
const routes = [{path: '/manage',name: 'manage',component: () => import('@/views/home/index.vue'),children: manageRoutes,}]

index.ts实现从module中自动导入

// 动态导入
const routeFiles = `import.meta.globEager`('./module/*.ts')
Object.keys(routeFiles).forEach((routePath) => {const fileModule = routeFiles[routePath].defaultmanageRoutes.push(...fileModule)
})

import.meta.glob与import.meta.globEager的区别

glob为异步加载,而globEager为同步加载

  • glob获取文件的promise函数,需要执行才能返回文件内容。如:
const routeFiles = import.meta.glob('./module/*.ts')
Object.keys(routeFiles).forEach(async (routePath) => {const fileModule = await routeFiles[routePath]()manageRoutes.push(...fileModule)
})

使用上述代码自动导入路由需要在路由注册前执行完,会影响系统性能,不建议
可以用于整组件的导入,如svg组件的使用

  • globEager获取到的值为( 文件路径:导出内容)的对象
const routeFiles = import.meta.globEager('./module/*.ts')
Object.keys(routeFiles).forEach((routePath) => {const fileModule = routeFiles[routePath].defaultmanageRoutes.push(...fileModule)
})

同步执行,不影响系统性能,推荐用来做路由的自动导入

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

相关文章:

  • C++——string类
  • 进制转换md5绕过 [安洵杯 2019]easy_web1
  • .kat6.l6st6r勒索病毒的最新威胁:如何恢复您的数据?
  • Day 6.有名信号量(信号灯)、网络的相关概念和发端
  • MySQL 常用优化方式
  • 算法刷题day22:双指针
  • 山人求道篇:八、模型的偏差与交易认知
  • MySQL 元数据锁及问题排查(Metadata Locks MDL)
  • JS中的函数
  • 微信小程序开发常用的布局
  • Effective C++ 学习笔记 条款10 令operator=返回一个reference to *this
  • 算法简单试题
  • CSS 自测题 -- 用 flex 布局绘制骰子(一、二、三【含斜三点】、四、五、六点)
  • 蓝桥集训之牛的学术圈 I
  • 软件设计师软考题目解析21 --每日五题
  • python读写json文件详解
  • #include<ros/ros.h>头文件报错
  • mybatis单表curd笔记(尚硅谷
  • 在线重定义-操作步骤
  • 16:00面试,16:06就出来了,问的问题过于变态了。。。
  • 基于dashscope在线调用千问大模型
  • 【Python】可变数据类型 不可变数据类型 || hash
  • MySQL 篇-深入了解多表设计、多表查询
  • 【Java】Spring的ReflectionUtils类常用方法学习笔记
  • 内存函数详解
  • 事务(transaction)
  • Linux之cd、pwd、mkdir 命令
  • 【python高级编程教程】笔记(python教程、python进阶)第三节:(1)多态与鸭子类型(Polymorphism and Duck Typing)
  • 学习JAVA的第十五天(基础)
  • LVS四层负载均衡集群