ES6模块
概述
历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。
在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。
ES6 Module使用
ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。
模块中导出数据
js
// module2.js
export var firstName = 'Michael';
export var lastName = 'Jackson';
export var year = 1958;
// module2.js
function say() {}
function eat() {}
export default {
say,
eat
}
导入模块
js
import {firstName, lastName, year} from './module1.js';
import myModule from './module2.js';
浏览器中Module的应用
下列浏览器版本或以上版本已经开始支持 Module:
- Safari 10.1
- Chrome 61
- Firefox 54 打开
about:config
启用 dom.modules.enabled - Edge 15 打开
about:flags
启用“实验性 Java 功能”
浏览器加载 ES6 模块,也使用<script>
标签,但是要加入type="module"
属性。