对于ES6和Commonjs的导入导出经常记混了,特此写一篇博客来记录ES6和Commonjs导入导出的使用。
ES6导入
默认导入(Default Import):
import moduleName from 'module';
命名导入(Named Imports):
import { exportName } from 'module';
命名导入,使用别名(Renaming Named Imports):
import { exportName as aliasName } from 'module';
导入模块中的所有导出(Import All):
import * as moduleName from 'module';
import * 会将命名导出和默认导出全部导入。a是命名导出、default是默认导出。
ES6导出
默认导出(Default Export):
export default value;
命名导出(Named Export):
export { exportName };
命名导出,并使用别名(Renaming Named Export):
export { exportName as aliasName };
Commonjs导入
导入整个模块:
const module = require('module');
导入模块中的特定成员:
const { member } = require('module');
导入模块中的所有成员:
const module = require('module');
动态导入(在运行时根据条件导入模块):
const module = require(condition ? 'moduleA' : 'moduleB');
Commonjs导出
导出一个值或对象:
module.exports = value;
导出多个值或对象:
module.exports = { value1, value2 };
导出一个命名的成员:
exports.member = value;
导出多个命名的成员:
exports.member1 = value1; exports.member2 = value2;
模块化原理:https://juejin.cn/post/6922039283016531982#heading-7 ES6Module底层实现:http://www.wawow.xyz/#/md-render?bid=40
Comments