码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Vue3+vite 使用import.meta.globEager代替require.context实现自动导入api


    webpack require.context实现自动导入

    Vite方式实现自动导入步骤

    1、在src下会有一个api文件夹,结构如下:

    在这里插入图片描述

    2、通常情况下,api文件夹的index.js文件我们通常是这样来引入的

    import * as login from './modules/login'
    import * as system from './modules/system'
    
    
    export default {
      ...login ,
      ...system 
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3、用import.meta.globEager来自动引入所有的文件,代码如下:

    import request from "@/utils/request";
    // 自动导入modules
    const files: any = import.meta.globEager("./modules/*.ts");
    let modules: any = {};
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    Object.entries(files).forEach(([k, v]) => {
      Object.assign(modules, v);
    });
    
    // 数据字典-查询 公共api
    export const getDicts = (dictType: any) => {
      return request({ url: `/system/dict/data/type/${dictType}`, method: "GET" });
    };
    export default {
      getDicts,
      ...modules
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    4、全局注册api(main.ts)

    // 所有api接口
    import api from "@/api";
    let instance = createApp(App);
    // 注册全局api方法
    instance.config.globalProperties.$api = api;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5、页面使用

    const { appContext } = getCurrentInstance() as any;
    const global = appContext.config.globalProperties;
    // 获取菜单数据
    const getMenuData = async () => {
      const res = await global.$api.getRouters();
      // console.log(999, res);
      if (res.success) {
        state.table.data = res.data;
      }
    };
    onMounted(() => {
      getMenuData();
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    6、最终效果

    在这里插入图片描述

    相关文章

    Vue3 + Vite + Ts开源后台管理系统模板


    基于ElementUi或AntdUI再次封装基础组件文档


    基于Element-plus再次封装基础组件文档(vue3+ts)

  • 相关阅读:
    化合物的四种基本反应与氧化还原反应;化合物极性与非极性;亲核反应与亲电反应
    CentOS/RHEL7环境下更改网卡名称为CentOS6的传统命名规则
    WebSocket技术解析:实现Web实时双向通信的利器
    2023 海外工具站 2 月复盘
    Vue.js入门教程(三)
    RabbitMQ系列【15】AmqpAdmin使用详解
    昨日,一老师课前预测日本赢球,结果令人惊叹
    x264、x265、OpenH264 简要对比
    彻底搞懂MySQL主从复制工作原理:2个日志 | 3种存储格式 |3个线程|4种工作模式
    2022-08-03 C++并发编程(六)
  • 原文地址:https://blog.csdn.net/cwin8951/article/details/132988768
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号