export, export default| exports, module.exports | import, require
分为两大块,涉及到es6的导入导出和nodejs的导入导出
-
node.js
exports
导出的方法,直接传给module.exports
module.exports
module.exports才是真正的接口,exports只不过是它的一个辅助工具。最终返回给调用的是module.exports而不是exports。所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是module.exports本身不具备任何属性和方法。如果,module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。导出的方法,exports不可以获得
-
ES6
export
导出常量、函数、文件、模块,一个文件可以export多个,导入export导出的文件时,语法如下
// 导出,a.js
export a = 5;
export str = '';
export function c() {
return str;
}
// 导入, 需要带花括号的
import {a, str, c} from 'a.js';
export default
其实此处相当于为sex变量值"boy"起了一个系统默认的变量名default,自然default只能有一个值,所以一个文件内不能有多个export default。
// 导出
var sex="boy";
export default sex
// 引入
import sex from './a.js'
require
是属于nodejs的一个模块,属于commonjs规范
import
es6的新模块规范