ES6从入门到精通:模块化

ES6 模块化基础概念

ES6 模块化是 JavaScript 官方标准,通过 importexport 语法实现代码拆分与复用。模块化特点包括:

  • 每个文件是一个独立模块,作用域隔离。
  • 支持静态分析,依赖关系在编译时确定。
  • 输出的是值的引用(动态绑定)。

导出模块(export)

导出方式分为 命名导出默认导出

javascript 复制代码
// 命名导出(可多个)
export const name = 'Module';
export function calculate() { /* ... */ }

// 批量命名导出
const data = { value: 1 };
export { data };

// 默认导出(仅一个)
export default class MainComponent { /* ... */ }

导入模块(import)

根据导出方式选择对应导入语法:

javascript 复制代码
// 导入命名导出
import { name, calculate } from './module.js';

// 导入时重命名
import { data as dataset } from './module.js';

// 导入默认导出(无需花括号)
import MainComponent from './module.js';

// 混合导入
import DefaultExport, { namedExport } from './module.js';

// 动态导入(按需加载)
const module = await import('./module.js');

模块路径规则

  • 相对路径./../ 开头,如 './utils.js'
  • 绝对路径:基于项目根目录的完整路径(需工具配置支持)。
  • 第三方模块 :直接写包名,如 'lodash'

模块化高级用法

重新导出:在入口文件整合多个模块

javascript 复制代码
export { Button } from './components/Button.js';
export * as utils from './utils.js';

聚合模块 :使用 import * as 导入全部命名导出

javascript 复制代码
import * as math from './math.js';
math.sum(1, 2);

注意事项

  • 模块脚本需在 HTML 中声明 type="module"

    html 复制代码
    <script type="module" src="main.js"></script>
  • 浏览器环境需通过服务器访问(本地文件协议不支持 CORS)。

  • Node.js 需在 package.json 设置 "type": "module" 或使用 .mjs 后缀。

常见工具链支持

  • Babel:将 ES6 模块转译为 CommonJS 格式。
  • Webpack/Rollup:打包模块并处理依赖树。
  • ESLint:检查模块化语法规范。

通过系统化实践,ES6 模块化能显著提升代码可维护性和协作效率。

相关推荐
灵感__idea4 小时前
Hello 算法:贪心的世界
前端·javascript·算法
GreenTea5 小时前
一文搞懂Harness Engineering与Meta-Harness
前端·人工智能·后端
killerbasd7 小时前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
吴声子夜歌7 小时前
ES6——二进制数组详解
前端·ecmascript·es6
码事漫谈8 小时前
手把手带你部署本地模型,让你Token自由(小白专属)
前端·后端
ZC跨境爬虫8 小时前
【爬虫实战对比】Requests vs Scrapy 笔趣阁小说爬虫,从单线程到高效并发的全方位升级
前端·爬虫·scrapy·html
爱上好庆祝8 小时前
svg图片
前端·css·学习·html·css3
王夏奇8 小时前
python中的__all__ 具体用法
java·前端·python
大家的林语冰9 小时前
《前端周刊》尤大开源 Vite+ 全家桶,前端工业革命启动;尤大爆料 Void 云服务新产品,Vite 进军全栈开发;ECMA 源码映射规范......
前端·javascript·vue.js
jiayong239 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习