exports與module.exports的區別,export與export.defult區別
阿新 • • 發佈:2018-12-23
使用 es6 webpack 前端工程 關系 import 接口 的區別 通過
4.通過export方式導出,在導入時要加{ },export default則不需要
在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僅有一個
exports與module.exports的區別,export與export.defult區別