AMD 浏览器端标准 输出使用 define(),导入使用 require()
在 CommonJs 模块标准中我们载入模块使用的是 require(),输出模块用的是 exports 或者 module.exports
在 ES6 中载入模块我们用的是 import * from * ,输出模块用的是 export
exports 与 module.exports 的区别
//载入模块
var m = require('./moduleA.js')
m.callName()
//输出模块
exports.callName = function(){
console.log('jesse')
}
//也可以这样输出
module.exports.callName = function(){
console.log('jesse')
}
module.exports 才是 module 模块的真正接口,而 exports 可以理解为它的一个副本
ES6 moduel 特性在node环境中并不能完全支持,解决方法是用babel编译
//载入模块
import {callName} from './moduleA.js'
callName()
//输出模块
export function callName (){
console.log('jesse')
}
1.export 与 export default 均可用于导出常量、函数、文件、模块等
2.你可以在其它文件或模块中通过 import+(常量 | 函数 | 文件 | 模块) 名的方式,将其导入,以便能够对其进行使用
3.在一个文件或模块中,export、import 可以有多个,export default 仅有一个
4.通过export方式导出,在导入时要加{ },export default 则不需要