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

ES11 / ES2020 动态 import()(异步加载模块)

ES2020 引入的 import() 动态导入语法 是现代 JavaScript 的重要特性,它允许按需异步加载模块,非常适合大型应用、懒加载、条件加载等场景。

✅ 一、基本语法

import(modulePath).then(module => {// 使用 module 中的导出
});

或用 await(需在 async 函数中):

const module = await import('./math.js');
console.log(module.add(2, 3));


✅ 二、使用场景

🔹 1. 按需加载模块,减小初始包体积

button.onclick = async () => {const modal = await import('./modal.js');modal.show();
};

🔹 2. 条件加载

if (isMobile()) {import('./mobile-only.js').then(m => m.init());
}

🔹 3. 懒加载组件(React/Vue 中常见)

const LazyComp = React.lazy(() => import('./Comp.jsx'));

🔹 4. 代码分割(webpack 自动识别)

import(/* webpackChunkName: "math" */ './math.js')


✅ 三、动态 import 返回的结构

import() 总是返回一个 Promise,你拿到的是一个 模块对象,里面包含你导出的所有内容:

假设 math.js:

export function add(a, b) {return a + b;
}

调用:

const math = await import('./math.js');
math.add(1, 2); // => 3

http://www.xdnf.cn/news/16816.html

相关文章:

  • Java项目:基于SSM框架实现的小区物业管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告+任务书+远程部署】
  • 使用神经网络与5折交叉验证进行基因组预测:基础知识指南
  • 【JMeter】性能测试脚本录制及完善
  • 从一开始的网络攻防(十三):WAF入门到上手
  • day 40 打卡-装饰器
  • 【JEECG】JVxeTable表格拖拽排序功能
  • [SKE]Python gmssl库的C绑定
  • 机器视觉halcon7-缺陷检测
  • 计算机网络1-3:三种交换方式
  • 开源 Arkts 鸿蒙应用 开发(十二)传感器的使用
  • 双线串行的 “跨界对话”:I2C 与 MDIO 的异同解析
  • 数学建模——最大最小化模型
  • 硬件电路设计(基本元器件)
  • sqli-labs:Less-7关卡详细解析
  • 数据治理平台如何选?深度解析国产化全栈方案与行业落地实践
  • Charles中文教程 高效抓包与API接口调试实战全指南
  • 《汇编语言:基于X86处理器》第10章 复习题和练习
  • yolo8+阿里千问图片理解(华为简易版小艺看世界)
  • Docker常用命令速查手册:容器运维七维指南
  • Centos7 | 防火墙(firewalld)使用ipset管理ip地址的集合
  • 以ros的docker镜像为例,探讨docker镜像的使用
  • Power Pivot 数据分析表达式(DAX)
  • 《Java 程序设计》第 10 章 - 接口与 Lambda 表达式
  • HTML基础P2 | JS基础讲解
  • JSON.parse解析大整数踩坑
  • 重生之我在10天内卷赢C++ - DAY 1
  • 安全和AI方向的学习路线
  • Tdesign-React 模板面包屑如何放到 Header头部
  • 白话容器基础(一):进程
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(一级)