一、exports 与 module.exports
介绍:exports
和 module.exports
是Node中导出模块的两种方式。Node为每个模块提供一个exports变量,指向module.exports。即var exports = module.exports;
。所以exports
和module.exports
,在不改变他们指向的内存地址时,它们是等价的, 用法也是相似的。
区别:module.exports
可直接赋值,但是不能对exports
直接赋值。
产生区别的原因:require
引入的对象本质上是module.exports
。如果对exports
直接赋值会导致exports
和 module.exports
指向的不是同一块内存,此时exports
的内容就会失效。
// 允许
module.exports = function () {
var a="Hello World"
return a;
}
// 错误写法
exports = function () {
var a="Hello World"
return a;
}
二、 export 与 export default
介绍: export
和 export default
是ES6中引出的语法,用于导出模块中的变量,对象,函数,类。
区别:
-
export default
在一个模块中只能有一个,当然也可以没有。export
在一个模块中可以有多个; -
export default
的对象、变量、函数、类,可以没有名字。export
的必须有名字; -
export default
对应的import
和export
有所区别。
使用
export default
导出:
// util.js
// 导出
const common = {
'numid': '数字账号',
'userid': '用户账号',
}
export default common;
// 导入, 不带{}的导入
import common from './util.js'
export
导出
// util.js
// 导出
const common = {
'numid': '数字账号',
'userid': '用户账号',
};
const mapInfo= {
'durian': '榴莲',
'mango': '芒果'
};
export { common, mapInfo };
//导入 ,带{}的导入
import {common, mapInfo } from './util.js';
网友评论