module.exports與exports,export與export default的區(qū)別

Node使用CommonJS規(guī)范,定義每個(gè)模塊的內(nèi)部,module變量代表當(dāng)前模塊,exports是module的屬性,表示對(duì)外的接口。加載某個(gè)模塊,實(shí)際上是加載該模塊的module.exports屬性。
Node為每隔模塊提供了一個(gè)exports變量,指向module.exports,這等同于每個(gè)模塊頭部有這樣的一行代碼:var exports = module.exports
ES6使用export和import來(lái)導(dǎo)出/導(dǎo)入模塊。
3.1 export與export default均可用于導(dǎo)出常量/函數(shù)/文件/模塊等;
3.2 在一個(gè)文件或模塊中,export/import可以有多個(gè),export default只有一個(gè);
3.3 通過(guò)export方式導(dǎo)出,在導(dǎo)入時(shí)需要加{},export default不需要;
3.4 export能導(dǎo)出變量/表達(dá)式,export default不可以。
CommonJS模塊輸出是一個(gè)值的拷貝,ES6模塊輸出是值的引用。
CommonJS模塊是運(yùn)行時(shí)加載,ES6模塊是編譯時(shí)輸出接口。
CommonJS模塊無(wú)論require多少次,都只會(huì)在第一次加載時(shí)運(yùn)行一次,然后保存到緩存中,下次在require,只會(huì)去從緩存取。

module.exports與exports ,是CommonJS的規(guī)范,被使用于Node.js中。export與export default ,是ES6規(guī)范,被使用于React或Vue中。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容