exports与module.exports的区别,export与export.defult区别
2024-10-07 03:21:06
在JS模块化编程中,之前使用的是require.js或者sea.js。随着前端工程化工具webpack的推出,使得前端js可以使用CommonJS模块标准或者使用ES6 moduel特性。
在CommonJs模块标准中我们载入模块使用的是require(),输出模块用的是exports或者module.exports
在ES6中载入模块我们用的是import ,输出模块用的是export
exports与module.exports的区别
//载入模块
var m = require('./moduleA.js')
m.callName()
//输出模块
exports.callName = function(){
console.log('jesse')
}
//也可以这样输出
module.exports.callName = function(){
console.log('jesse')
}
module.exports才是module模块的真正接口,而exports可以理解为它的一个副本
虽然修改exports对象的时候也会修改module.exports对象,但最终返回给调用的是module.exports对象
当module.exports对象通过赋值方式进行设定后,就已经和exports对象没关系了
so,我的理解是exports输出的只是要输出的对象的某个属性,module.exports才真正输出的是要输出的对象。
一个模块文件中可以有多个exports输出,但只能有一个module.exports输出
这种方式普遍用于node中模块的编写
export与export.defult区别
es6moduel特性在node环境中并不能完全支持,解决方法是用babel编译
//载入模块
import {callName} from './moduleA.js'
callName()
//输出模块
export function callName (){
console.log('jesse')
}
1.export与export default均可用于导出常量、函数、文件、模块等
2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
3.在一个文件或模块中,export、import可以有多个,export default仅有一个
4.通过export方式导出,在导入时要加{ },export default则不需要
最新文章
- (原)3.1 Zookeeper应用 - Master选举
- eclipse debug小技巧
- SOLID architecture principles using simple C# examples
- skip32
- Linux环境进程间通信(五): 共享内存(下)
- Sql Server尝试读取或写入受保护的内存。这通常指示其他内存已损坏
- 使用splice实现高效的代理服务器
- node.js连接MySQL操作及注意事项
- 基于Android P系统对selinux相关整理
- 用es6类封装的图片预加载技术!
- Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示
- 在Java的Condition接口【唤醒全部线程】
- python 爬虫 记录
- Zabbix监控MySQL免密码设置
- HTML+CSS写下拉菜单
- QTQuick控件基础(2)
- AngularJS通过$location获取及改变当前页面的URL
- 11 stark组件之delete按钮、filter过滤
- 【arc073D】Many Moves
- 动态规划-House Robber
热门文章
- ionic hidden scroll bar
- 【shiro】(1)---了解权限管理
- 【云服务器部署】---Linux下安装nginx
- IntelliJ IDEA中用Git插件操作
- Struts1入门实例(简单登录)
- 解决Unity中模型部件的MeshCollider不随动画一起运动的问题
- Magicodes.NET框架之路——让Magicodes.NET帮你编写代码
- Spring Boot (五)Spring Data JPA 操作 MySQL 8
- Deep Learning中的Large Batch Training相关理论与实践
- spark之java程序开发