CommJs中的module.exports 和 exports 和 ES6 中的 export 和 export default 之间的区别
程序员文章站
2024-03-20 15:33:34
...
module.exports 和 exports
这两个是属于 Node.js中的导出模块的方法
module.exports
module.exports属性表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量。
exports
为了方便,Node为每个模块提供一个exports变量,指向module.exports。这等同在每个模块头部,有一行这样的命令 var exports= module.exports。
如果使用exports导出模块的话,只能为exports对象添加方法或者属性,不能将其重新赋值,重新赋值就会切断与module.exports的联系!! 如果给exports添加了属性或方法,module.exports也不能重新赋值,如果重新赋值,就改变了引用关系,之前和exports引用的关系改变了,所以exports加进去的方法也不会导出
exports.hello = 'hello';
module.exports = 'hello world';
这样做的话 exports 上加的属性加在了 module.exports 之前的引用对象上面,然后 module.exports 重新赋值了,就丢失了之前引用中的 hello 属性!!
如果一个模块的对外接口,就是一个单一的值,不能使用exports输出,只能使用module.exports输出。
ES6 中的 export 和 export default
export (命名导出)
export 导出的模块 在导入的时候必须变量名与之一一对应。命名导出可以导出多个值,但是导入时命名需要与导出命名相同
// module.js
let fn=function(){
...
};
let fn1=function(){
...
};
export {fn1,fn2};
// index.js
import {fn1, fn2} from 'module.js';
export default(默认导出)
只能有一个默认导出;导入时,可以使用任意命名导 默认导出的模块。
在一个模块中只能使用一次此方法导出。
上一篇: html导出成word
下一篇: Android——Toast的例子们
推荐阅读
-
CommJs中的module.exports 和 exports 和 ES6 中的 export 和 export default 之间的区别
-
JavaScript ES6中export、import与export default的用法和区别
-
Commonjs规范中module.exports和exports的区别
-
Commonjs规范中module.exports和exports的区别
-
es6中的模块化语法import和export
-
Node.js 中exports 和 module.exports 的区别
-
详解nodejs中exports和module.exports的区别
-
浅谈es6中export和export default的作用及区别
-
Node.js 中exports 和 module.exports 的区别
-
Node.js 中 exports 和 module.exports 的区别