如何理解JavaScript模塊化
使用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就是默認導出的Test1x()
批量導入
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('這是默認導出')}function Test2(){ console.log(’這是命名導出’)}export {Test1 as x1, Test2 as x2}
應用模塊
html
<script src='http://www.aoyou183.cn/bcjs/main.js'></script>4. 創建模塊對象
使用對象,在as關鍵字重命名的基礎上進一步簡單化
import * as Model from './model.js'Model.x1();Model.x2();5. export import 中轉站
有時候可以將多個子模塊組合到一個父模塊中,再由父模塊決定導出哪個,這個父模塊文件就像是個組合各個模塊的中轉站
語法為export {變量名} from 模塊路徑
當前目錄結構結構
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='http://www.aoyou183.cn/bcjs/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模塊化的資料請關注好吧啦網其它相關文章!
相關文章:
