詳解export default與require及exports,export區別與聯繫
還在為module.exports、exports、export和export default,import和require區別與聯繫發愁嗎,這篇基本上就夠了!
一、先搞清楚一個基本問題:
module.exports和exports是屬於CommonJS模組規格! (不清楚commonjs?大神請這邊逛一逛commonjs規格)
#export和export default是屬於ES6文法 (不清楚ES6?大神請這邊逛一逛ES6模組)!
同樣import和require分別屬於ES6和CommonJS!
二、知道屬於哪一塊的語法了還有一個明確點:
module.exports和exports、export和##export default都是匯出模組;
#import##import和require則是
導入模組。
所以現在就不要搞混了,module.exports導出對應require導入,export導出對應import導入。 餵!等等,怎麼說到module.exports導出對應require導入,export導出對應import導入,那還有exports和export default呢! ?那我們繼續。 三、module.exports與
exports的差異與聯繫
Node應用由模組組成,採用CommonJS模組規格。
根據這個規範,每個檔案就是一個模組,有自己的作用域。在一個檔案裡面定義的變數、函數、類,都是私有的,對其他檔案不可見。
CommonJS規格規定,每個模組內部,
module變數代表目前模組。這個變數是一個對象,它的
exports
module.exports
)是對外的介面。載入某個模組,其實是載入該模組的module.exports
屬性。var x = 5;var addX = function (value) { return value + x;};module.exports.x = x;module.exports.addX = addX;
上面程式碼透過
module.exports輸出變數x和函數
addX
require
方法用來載入模組。var example = require('./example.js');console.log(example.x); // 5console.log(example.addX(1)); // 6
module.exports。這等同在每個模組頭部,有一行這樣的指令。
var exports = module.exports;
三、export與
export default的差異與聯繫模組功能主要由:
export與
import構成
export匯出模組的對外接口,
import指令匯入其他模組暴露的介面。
import
指令的時候,使用者需要知道要載入的變數名或函數名,否則無法載入。這裡就有一個簡單寫法不用去知道有哪些具體的暴露介面名,就用export default指令,為模組指定預設輸出。
export可以這樣寫
<code class=" javascript"><span class="token comment">// testA.js<span class="token keyword">var f <span class="token operator">= <span class="token string">'Miel'<span class="token punctuation">;<span class="token keyword">var name <span class="token operator">= <span class="token string">'Jack'<span class="token punctuation">;<span class="token keyword">var data<span class="token operator">= <span class="token number">1988<span class="token punctuation">; export <span class="token punctuation">{f<span class="token punctuation">, name<span class="token punctuation">, data<span class="token punctuation">}<span class="token punctuation">;<br/></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
export
指令定義了模組的對外介面以後,其他JS 檔案就可以透過import
指令來載入這個模組。<code class=" javascript"><span class="token comment">// main.js import <span class="token punctuation">{</span></span></code><code class=" javascript"><span class="token comment"><span class="token keyword"><span class="token operator"><span class="token string"><span class="token punctuation"><span class="token keyword"><span class="token operator"><span class="token string"><span class="token punctuation"><span class="token keyword"><span class="token operator"><span class="token number"><span class="token punctuation"><span class="token punctuation">f<span class="token punctuation">, name<span class="token punctuation">, data</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code><code class=" javascript"><span class="token comment"><span class="token punctuation"><span class="token punctuation"><span class="token punctuation"><span class="token punctuation">} from <span class="token string">'./testA'<span class="token punctuation">;<br/></span></span></span></span></span></span></span></code>
export default可以這樣寫
<code class=" javascript"><span class="token comment">// export-default.js export default <span class="token keyword">function <span class="token punctuation">(<span class="token punctuation">) <span class="token punctuation">{ console<span class="token punctuation">.<span class="token function">log<span class="token punctuation">(<span class="token string">'foo'<span class="token punctuation">)<span class="token punctuation">;<span class="token punctuation">}<br/></span></span></span></span></span></span></span></span></span></span></span></span></code>
// 或者写成function foo() { console.log('foo');} export default foo;
<code class=" javascript"><span class="token comment">// import-default.js import customName from <span class="token string">'./export-default'<span class="token punctuation">;<span class="token function">customName<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;<span class="token comment"> // 'foo'<br/><br/></span></span></span></span></span></span></span></span></code>
下面比較一下export default和export 輸出。 <strong>可以看到第一組是使用,語句不需要使用大括號;第二組使用,對應的語句需要使用大括號,一個模組只能有一個預設輸出,所以只能使用一次。 </strong><strong></strong>
的差別與連結
以上是詳解export default與require及exports,export區別與聯繫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

VueCli中出現'Therequestedmoduledoesnotprovideanexportnamed'Error–要怎麼解決?在Vue專案的開發過程中,我們可能會遇到'Therequestedmoduledoesnotprovideanexportnamed'的錯誤提示。這個錯誤提示一般會出現在引入第三方元件時

設定default gateway的步驟:1、確定路由器的IP位址;2、開啟電腦的網路設定介面;3、設定網路連線;4、設定IPv4設定;5、輸入IP位址與子網路遮罩;6、設定預設閘道;7、配置DNS伺服器;8、儲存設定。詳細介紹:1、確定路由器的IP位址,預設閘道的位址通常是路由器的IP位址,在路由器的背面或使用手冊中,可以找到路由器的IP位址;2、開啟電腦的網路設定等等。

設定default gateway的步驟:1、開啟控制面板;2、選擇網路和Internet;3、設定網路連線;4、設定IP位址;5、設定DNS伺服器位址;6、確認設定;7、重新啟動網路設備。詳細介紹:1、開啟控制台,在Windows系統中,點選開始選單,選擇「控制台」;2、選擇網路和Internet,在控制台中,選擇「網路和Internet」;3、設定網路連線等等。

export和export default的區別是export關鍵字用於導出一個或多個變數、函數或類,而export default關鍵字用於導出一個預設的變數、函數或類別。在其他模組中,可以使用import關鍵字來匯入這些導出的變數、函數或類別。

設定default gateway的步驟:1、了解網路環境;2、取得路由器IP位址;3、登入路由器管理介面;4、找到並設定WAN埠設定;5、設定預設閘道;6、儲存設定並登出;7、檢查網路連線是否正常。設定default gateway是網路設定中的重要步驟,它決定了主機透過哪個路由器存取網際網路。

PHP是一種廣泛應用於Web開發領域的腳本語言,其靈活性和強大的功能讓開發者受益良多。在PHP中,預設值的設定是常見的操作,而其中的default關鍵字則扮演著至關重要的角色。本文將深入解析PHP中default的用法,為你揭開其奧秘,並結合具體的程式碼範例來幫助讀者更好地理解。 1.預設參數值在PHP中,我們可以為函數的參數設定預設值,以防止呼叫函數時

default是java關鍵字嗎:答:default是java8中的關鍵字,也叫做「virtualextensionmethods」。中文翻譯叫做「虛擬擴充方法」在介面裡包含了一些預設的使用方法。在介面進行擴充的時候,不會去和與介面相關的實作類別程式碼產生衝突。 default和java相關介紹:1.在此之前的介面是個雙面刃,能夠面向抽象但是不面向具體程式設計。 2.這個的缺點是需要修改介面的時候,要先修改全部實作介面的類別。 3.在無法為介面新增方法的時候不會影響已有的顯示,因此加入了預設的方法,為大家解決

預設約束MySQL預設值約束用來指定某列的預設值。新增預設約束方式1:default;方式2:altertable表名modify列名類型default預設值;createtablet_user10(idint,namevarchar(20),addressvarchar(20)default'北京'--指定預設約束);--altertable表名modify列名類型default預設值;createtablet_user11(idint,namevarchar(20),addr
