export, default export ,exports ,module.exports 区别

252 阅读1分钟

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

  1. exports 可以导出对象
exports = {
    a:1,
    b:function(){}
}

这时候取出来的时候要用解构赋值取,直接取的话是整个对象

  1. exports 也可以直接导出某个函数
exports = function a(){}

这时候取出来是整个函数

exports与module.exports

为了方便,Node为每个模块提供一个exports变量,指向module.exports。这等同在每个模块头部,有一行这样的命令。

var exports = module.exports;

于是我们可以直接在 exports 对象上添加方法,表示对外输出的接口,如同在module.exports上添加一样。注意,不能直接将exports变量指向一个值,因为这样等于切断了exports与module.exports的联系。