exports与module.exports的区别,export与export.defult区别
在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则不需要
exports与module.exports的区别,export与export.defult区别的更多相关文章
- exports与module.exports的区别,以及export与export.defult的区别
在 JS 模块化编程的模块引入上, 主要有两种方式: CommonJS 模块标准 ES6 moduel 特性 1. CommonJS 模块引入:require() 模块导出:exports 或者 mo ...
- exports与module.exports,export与export default 之间的关系和区别
首先我们要明白一个前提,CommonJS模块规范和ES6模块规范完全是两种不同的概念. CommonJS模块规范 Node应用由模块组成,采用CommonJS模块规范. 根据这个规范,每个文件就是一个 ...
- exports、module.exports 和 export、export default
先了解他们的使用范围. require: node 和 es6 都支持的引入export / import : 只有es6 支持的导出引入module.exports / exports: 只有 no ...
- NodeJS的exports、module.exports与ES6的export、export default深入详解
前言 决定开始重新规范的学习一下node编程.但是引入模块我看到用 require的方式,再联想到咱们的ES6各种export .export default. 阿西吧,头都大了.... 头大完了,那 ...
- nodejs模块中exports和module.exports的区别
通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ ,这些核心模块被编译成二进制文件,可以require('模块名')去获取:核心 ...
- node exports和module.exports区别
我们只需知道三点即可知道 exports 和 module.exports 的区别了: exports 是指向的 module.exports 的引用 module.exports 初始值为一个空对象 ...
- exports和module.exports的区别
总结:exports是module.exports的指向. 1. module应该是require方法中,上下文中的对象 2. exports对象应该是上下文中引用module.exports的新对象 ...
- nodejs中exports与module.exports的区别详细介绍
如果模块是一个特定的类型就用Module.exports.如果模块是一个典型的"实例化对象"就用exports. exports.name = function() { conso ...
- 【nodejs】exports 和 module.exports 的区别
require 用来加载代码,而 exports 和 module.exports 则用来导出代码.但很多新手可能会迷惑于 exports 和 module.exports 的区别,为了更好的理解 e ...
随机推荐
- Centos创建ftp服务器
整理的ftp服务的笔记: http://services.linuxpanda.tech/%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/ ...
- MySQL中支持emoji表情的存储
由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...
- Dijkstra——单源最短路径
算法思想 ①从一个源点开始,找距离它最近的点顶点v ②然后以顶点v为起点,去找v能到达的顶点w,即v的邻居 比较源点直接到 v的距离和(源点到v的距离+v到w的距离) 若大于后者则更新源点的到w的开销 ...
- [转]Node.js中koa使用redis数据库
本文转自:https://blog.csdn.net/offbye/article/details/52452322 Redis是一个常用的Nosql数据库,一般用来代替Memcached做缓存服务, ...
- [转]Angular开发(十八)-路由的基本认识
angular router https://angular.io/guide/router 本文转自:https://blog.csdn.net/kuangshp128/article/detail ...
- [转]Raw Queries in Laravel
本文转自:https://fideloper.com/laravel-raw-queries Business logic is often complicated. Because of this, ...
- [转]USDT与omniCore钱包
本文转自:http://www.cnblogs.com/red-evil/p/10039740.html USDTUSDT,又称为泰达币,是由Tether公司在 2015年推出的一种与美元锚定的加密货 ...
- 如何把ASP.NET MVC项目部署到本地IIS上
默认情况下,在VisualStudio中开发网站,会运行在IISExpress中,如果想把网站部署到本地的IIS服务器上该怎么办呢? 一.首先,以管理员身份运行VisualStudio,否则在修改项目 ...
- C#通过窗体属性缩小一定尺寸时,无法再缩小窗体尺寸问题
问题:通过窗体属性缩小窗体尺寸时,发现改变到一定大小时无法再缩小.条件:在代码中设置窗体的尺寸由窗体属性里设置的宽高决定,但实际通过窗体属性设置窗体大小,一定大小时无法再缩小,那是因为我们没有把窗体属 ...
- Android RecyclerView预览item
参考: Android Tools Attributes listItem 和 Sample Data 的用法 笔记 tools:text TextView可以实现预览,不影响实际的效果 例如: to ...