1. 程式人生 > 程式設計 >如何理解JavaScript模組化

如何理解JavaScript模組化

1. 瀏覽器支援

http://www.cppcns.com

使用javascript 模組依賴於 import 和 export,import 和 export 的瀏覽器支援程度是最新的瀏覽器版本都是支援的,但 IE 和舊版本的瀏覽器不支援,因此若想相容 IE 和舊版本的瀏覽器基本就不能使用了。

export 和 import 是成對出現,配合工作的

js模組化是各種JS框架學習的前提基礎

import 和 export 語句用於將一個模組裡實現某些功能的變數或函式匯入/匯出,也可匯入/匯出類

2. export 匯出模組

預設匯出

一個模組只能有一個預設匯出,預設匯出的變數只能有一個,且不能有大括號{}

語法為export default 變數名

model.js

function Test1(){
    console.log("這是預設匯出")
}
function Test2(){
    console.log('這是命名匯出')
}
export default Test1

批量匯出

語法為export {變數名,變數名……}

function Test1(){
    console.log("這是預設匯出")
}
function Test2(){
    console.log('這是命名匯出')
}
export {Test1,Test2}

3. import 匯入模組

預設匯入

main.js

import Test1 from "./model.js"
Test1()

預設匯入的重新命名

main.js

import x from "./model.js"//x就是預設匯出的Test1
x()

批量匯入

main.js

import {Test1,Test2} from "./model.js"
Test1();
Test2();

批量匯入的重新命名

as關鍵字跟一個新名字實現重新命名

main.js

import {Test1 as x1,Test2 as x2} from "./model.js"
x1();
x2();

也可在匯出時用as關鍵字重新命名

model.js

function Test1(){
    console.log("這是預設匯出")
}
f程式設計客棧unction Test2(){
    console.log('這是命名匯出')
}
export {Test1 as x1,Test2 as x2}

應用模組

html

<script src="main.js"></script&gwww.cppcns.comt;

4. 建立模組物件

使用物件,在as關鍵字重新命名的基礎上進一步簡單化

import * as Model from "./model.js"
Model.x1();
Model.x2();

5. export import 中轉站

有時候可以將多個子模組組合到一個父模組中,再由父模組決定匯出哪個,這個父模組檔案就像是個組合各個模組的中轉站

語法為export {變數名} from 模組路徑

當前目錄結構結構

src

    indenFiCGrx.html

    main.js

    redirection.js

    models

        model.js

        model2.js

model.js

function Test1(){
    console.log("這是子模組1")
}
export {Test1}

model2.js

function Test2(){
    console.log('這是nFiCGr子模組2')
}
export {Test2}

redirection.js

export {Test1} from "./models/model.js"
export {Test2} from "./models/model2.js"

main.js

import * as Model from "./redirection.js"
Model.Test1()
Model.Test2()

html

<script src="./main.js"></script>

6. 動態載入模組

動態載入模組用於在匯入模組時不必預先載入所有模組,可以在需要時使用 import() 作為函式呼叫,將其引數傳遞給模組的路徑,它返回一個 promise,使用 Promise 物件對模組載入結果操作。

語法為import(動態載入的模組路徑)

dynamic.js

function TestDy(){
    console.log("這是動態模組")
}
export default TestDy

main.js

document.querySelector('.load').onclick = function(){
    import('./dynamic.js').then((Model)=>{
        Model.default()
    })
}

以上就是如何理解javaScript模組化的詳細內容,更多關於JavaScript模組化的資料請關注我們其它相關文章!