电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

如何理解JavaScript模塊化

瀏覽:101日期:2023-06-03 13:44:18
目錄1. 瀏覽器支持2. export 導出模塊3. import 導入模塊4. 創建模塊對象5. export import 中轉站6. 動態加載模塊1. 瀏覽器支持

使用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.hdgsjgj.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.hdgsjgj.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模塊化的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 棕刚玉_白刚玉_铝酸钙-锐石新材料 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 热处理炉-退火炉-回火炉设备厂家-丹阳市电炉厂有限公司 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 阁楼货架_阁楼平台_仓库仓储设备_重型货架_广州金铁牛货架厂 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 沈飞防静电地板__机房地板-深圳市沈飞防静电设备有限公司 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 巩义市科瑞仪器有限公司| 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 高压包-点火器-高压发生器-点火变压器-江苏天网 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 铝机箱_铝外壳加工_铝外壳厂家_CNC散热器加工-惠州市铂源五金制品有限公司 | 膏方加工_丸剂贴牌_膏滋代加工_湖北康瑞生物科技有限公司 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 锂离子电池厂家-山东中信迪生电源 | 丹佛斯压力传感器,WISE温度传感器,WISE压力开关,丹佛斯温度开关-上海力笙工业设备有限公司 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 万家财经_财经新闻_在线财经资讯网 | 隔爆型防爆端子分线箱_防爆空气开关箱|依客思 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 尊享蟹太太美味,大闸蟹礼卡|礼券|礼盒在线预订-蟹太太官网 | 通信天线厂家_室分八木天线_对数周期天线_天线加工厂_林创天线源头厂家 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 365文案网_全网创意文案句子素材站 |