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

相关推荐
css趣多多2 小时前
this.$watch
前端·javascript·vue.js
干前端2 小时前
Vue3虚拟滚动列表组件进阶:不定高度及原理分析!!!
前端·前端组件
雨季6662 小时前
Flutter 三端应用实战:OpenHarmony “极简文本行数统计器”
开发语言·前端·flutter·ui·交互
MAHATMA玛哈特科技2 小时前
以曲求直:校平技术中的反直觉哲学
前端·数据库·制造·校平机·矫平机·液压矫平机
C澒2 小时前
前端技术核心领域与实践方向
前端·系统架构
Remember_9933 小时前
Java 单例模式深度解析:设计原理、实现范式与企业级应用场景
java·开发语言·javascript·单例模式·ecmascript
写代码的【黑咖啡】3 小时前
Python 中的自然语言处理利器:NLTK
前端·javascript·easyui
Swift社区3 小时前
Nginx 反向代理配置 React 前端与 Python 后端
前端·nginx·react.js
可问春风_ren3 小时前
Vue3 入门详解:从基础到实战
开发语言·前端·javascript·vue.js·前端框架·ecmascript·edge浏览器
一起养小猫3 小时前
Flutter for OpenHarmony 实战:从零开发一款五子棋游戏
android·前端·javascript·flutter·游戏·harmonyos