前言:
模組化的優點讓我們可以在不同專案下引用所需檔案即可,一方面可以快速除錯,另一方面也能減少檔案大小。
模組系統
完全解析 JavaScript import、export
[ES6] Javascript Import & Export 教學 | Modules | 模組化
歷史
在 ES6
以前,JavaScript
長期以來都未支援模組系統。而在 ES6 出現後,JavaScript
融合了 AMD
跟 CommonJS
優點,加入模組化系統。
為何我們要使用 import
export
?
- 壓縮程式碼大小
- 方便管理程式碼
如何使用與重點
- 輸出資料,透過 export 方法,通常位於檔案最後
- 輸入資料,透過 import 方法,通常輸入位於最前面
- ES6 的模組程式碼會自動變成 strict-mode (嚴格模式)
匯出
思思有兩種,而匯出也有分兩種
- default export
- 具名匯出
default export
每個檔案中,export default
只能有一個,寫法如下
1 | // 範例1 |
export default
則可以直接使用匿名函式
的形式匯出
具名匯出
具名匯出是需要將變數、物件預先宣告後再進行匯出。
1 | // 範例1 |
小結論
- 具名匯出跟預設匯出式可以併存
匯入
將 export
檔案載入,載入方式根據匯出方式為具名還是預設而有所不同。此外,預設跟具名也可以同時載入。
1 | // 具名匯出 |
如果不是
export default
就必須使用解構{}
方法讀取,此外載入檔案時script
上要記得加上type = 'module'
使用時機
- 根據卡斯柏老師文章內容提到,
export default
似乎最常被使用到,然而文章中也由提及預設匯出的問題。因此實作上還是要應專案而異。