模块化规范有:
CommonJS:Node.js
AMD:require.js
CMD:sea.js
ES6:Module
ES6模块化使用:
关键词:export、import、as、export default
导出名字和引用名字必须完全一样
// Module-1.js做单个导出 // 单个导出 export const a = 5; export const b = 7; export const sum = (x, y) => x + y const obj = { name: '张三' } export { obj } // 引用 import { a, b, sum, obj } from './Module-1' console.log(a); console.log(b); console.log(sum(1, 2)); console.log(obj);
用as关键字起别名
import { a as aa } from './Module-1' console.log(aa);
一次性导出
// Module-2.js const a = 5; const b = 7; const sum = (x, y) => x + y const obj = { name: '张三' } export { a, b, sum, obj }
有默认导出
默认导出的名字可以随意命名,例如命名为de
非默认导出的需要加{}包裹,规则如上名基础使用一样
// Module-3.js // 默认导出 const a = 5; // 每个模块只能有一个default导出 export default a export const str = 'abc' // 引用 import de, { str } from './Module-3' console.log(de);
引用所有导出对象用*号
import * as mod from './Module-3'