export, default export ,exports ,module.exports 区别
export exports 区别
export
使用export抛出的变量,引入时名称是抛出的名称,不可以自定义
//a.js
export function getList(){};
//b.js
import {getList} from './a.js';
使用export default 抛出的变量,只需要自己起一个名字就行;
//a.js
var obj = {name:'liming'};
export default obj;
//b.js
import aaa from './a.js';
console.log(aaa.name);//输出'liming'
exports
- exports 可以导出对象
exports = {
a:1,
b:function(){}
}
这时候取出来的时候要用解构赋值取,直接取的话是整个对象
- exports 也可以直接导出某个函数
exports = function a(){}
这时候取出来是整个函数
exports与module.exports
为了方便,Node为每个模块提供一个exports变量,指向module.exports。这等同在每个模块头部,有一行这样的命令。
var exports = module.exports;
于是我们可以直接在 exports 对象上添加方法,表示对外输出的接口,如同在module.exports上添加一样。注意,不能直接将exports变量指向一个值,因为这样等于切断了exports与module.exports的联系。