ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-11-25 12:33:11  阅读:151  来源: 互联网

标签:CommonJS default exports module export 模块


exports、module.exports 和 export、export default 到底是咋回事

前言

难得有空,今天开始重新规范的学习一下node编程。
但是引入模块我看到用 require的方式,再联想到咱们的ES6各种export 、export default

阿西吧,头都大了....

头大完了,那我们坐下先理理他们的使用范围。

require: node 和 es6 都支持的引入
export / import : 只有es6 支持的导出引入
module.exports / exports: 只有 node 支持的导出

这一刻起,我觉得是时候要把它们之间的关系都给捋清楚了,不然我得混乱死。话不多少,咱们开干!!

 

Node使用CommonJS规范,定义每个模块的内部,module变量代表当前模块,exports是module的属性,表示对外的接口。加载某个模块,实际上是加载该模块的module.exports属性。
Node为每隔模块提供了一个exports变量,指向module.exports,这等同于每个模块头部有这样的一行代码:var exports = module.exports
ES6使用export和import来导出/导入模块。
3.1 export与export default均可用于导出常量/函数/文件/模块等;
3.2 在一个文件或模块中,export/import可以有多个,export default只有一个;
3.3 通过export方式导出,在导入时需要加{},export default不需要;
3.4 export能导出变量/表达式,export default不可以。
CommonJS模块输出是一个值的拷贝,ES6模块输出是值的引用。
CommonJS模块是运行时加载,ES6模块是编译时输出接口。
CommonJS模块无论require多少次,都只会在第一次加载时运行一次,然后保存到缓存中,下次在require,只会去从缓存取。

module.exports与exports ,是CommonJS的规范,被使用于Node.js中。export与export default ,是ES6规范,被使用于React或Vue中。

标签:CommonJS,default,exports,module,export,模块
来源: https://www.cnblogs.com/caijinghong/p/14035332.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有