溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript模塊化的示例分析

發(fā)布時間:2021-05-17 14:57:15 來源:億速云 閱讀:154 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下JavaScript模塊化的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1. 瀏覽器支持

使用JavaScript 模塊依賴于 import 和 export,import 和 export 的瀏覽器支持程度是最新的瀏覽器版本都是支持的,但 IE 和舊版本的瀏覽器不支持,因此若想兼容 IE 和舊版本的瀏覽器基本就不能使用了。

export 和 import 是成對出現(xiàn),配合工作的

JS模塊化是各種JS框架學(xué)習(xí)的前提基礎(chǔ)

import 和 export 語句用于將一個模塊里實現(xiàn)某些功能的變量或函數(shù)導(dǎo)入/導(dǎo)出,也可導(dǎo)入/導(dǎo)出類

2. export 導(dǎo)出模塊

默認(rèn)導(dǎo)出

一個模塊只能有一個默認(rèn)導(dǎo)出,默認(rèn)導(dǎo)出的變量只能有一個,且不能有大括號{}

語法為export default 變量名

model.js

function Test1(){
    console.log("這是默認(rèn)導(dǎo)出")
}
function Test2(){
    console.log('這是命名導(dǎo)出')
}
export default Test1

批量導(dǎo)出

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

function Test1(){
    console.log("這是默認(rèn)導(dǎo)出")
}
function Test2(){
    console.log('這是命名導(dǎo)出')
}
export {Test1, Test2}

3. import 導(dǎo)入模塊

默認(rèn)導(dǎo)入

main.js

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

默認(rèn)導(dǎo)入的重命名

main.js

import x from "./model.js"//x就是默認(rèn)導(dǎo)出的Test1
x()

批量導(dǎo)入

main.js

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

批量導(dǎo)入的重命名

as關(guān)鍵字跟一個新名字實現(xiàn)重命名

main.js

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

也可在導(dǎo)出時用as關(guān)鍵字重命名

model.js

function Test1(){
    console.log("這是默認(rèn)導(dǎo)出")
}
function Test2(){
    console.log('這是命名導(dǎo)出')
}
export {Test1 as x1, Test2 as x2}

應(yīng)用模塊

html

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

4. 創(chuàng)建模塊對象

使用對象,在as關(guān)鍵字重命名的基礎(chǔ)上進(jìn)一步簡單化

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

5. export import 中轉(zhuǎn)站

有時候可以將多個子模塊組合到一個父模塊中,再由父模塊決定導(dǎo)出哪個,這個父模塊文件就像是個組合各個模塊的中轉(zhuǎn)站

語法為export {變量名} from 模塊路徑

當(dāng)前目錄結(jié)構(gòu)結(jié)構(gòu)

src

    index.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('這是子模塊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. 動態(tài)加載模塊

動態(tài)加載模塊用于在導(dǎo)入模塊時不必預(yù)先加載所有模塊,可以在需要時使用 import() 作為函數(shù)調(diào)用,將其參數(shù)傳遞給模塊的路徑,它返回一個 promise,使用 Promise 對象對模塊加載結(jié)果操作。

語法為import(動態(tài)加載的模塊路徑)

dynamic.js

function TestDy(){
    console.log("這是動態(tài)模塊")
}
export default TestDy

main.js

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

JavaScript的作用是什么

1、能夠嵌入動態(tài)文本于HTML頁面。2、對瀏覽器事件做出響應(yīng)。3、讀寫HTML元素。4、在數(shù)據(jù)被提交到服務(wù)器之前驗證數(shù)據(jù)。5、檢測訪客的瀏覽器信息。6、控制cookies,包括創(chuàng)建和修改等。7、基于Node.js技術(shù)進(jìn)行服務(wù)器端編程。

以上是“JavaScript模塊化的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI