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 模块化能显著提升代码可维护性和协作效率。

相关推荐
Z***u65927 分钟前
前端性能测试实践
前端
xhxxx30 分钟前
prototype 是遗产,proto 是族谱:一文吃透 JS 原型链
前端·javascript
倾墨31 分钟前
Bytebot源码学习
前端
用户938169125536035 分钟前
VUE3项目--集成Sass
前端
S***H2831 小时前
Vue语音识别案例
前端·vue.js·语音识别
啦啦9118861 小时前
【版本更新】Edge 浏览器 v142.0.3595.94 绿色增强版+官方安装包
前端·edge
蚂蚁集团数据体验技术2 小时前
一个可以补充 Mermaid 的可视化组件库 Infographic
前端·javascript·llm
LQW_home2 小时前
前端展示 接受springboot Flux数据demo
前端·css·css3
q***d1732 小时前
前端增强现实案例
前端·ar
IT_陈寒2 小时前
Vite 3.0 重磅升级:5个你必须掌握的优化技巧和实战应用
前端·人工智能·后端