日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

常見,但是總回答不好的面試題:JS 模塊化以及模塊打包器

來源: 責(zé)編: 時(shí)間:2024-05-16 09:09:31 163觀看
導(dǎo)讀Hello,大家好,我是 Sunday。如今的前端已經(jīng)是一套非常復(fù)雜的體系了,甚至延伸出來了所謂“微前端”的概念。而支撐這些復(fù)雜邏輯的前提就是 模塊化 的概念。但是,我在和很多的同學(xué)溝通(做技術(shù)摸底)的過程中,卻發(fā)現(xiàn):很多同學(xué)并不

Hello,大家好,我是 Sunday。eUR28資訊網(wǎng)——每日最新資訊28at.com

如今的前端已經(jīng)是一套非常復(fù)雜的體系了,甚至延伸出來了所謂“微前端”的概念。而支撐這些復(fù)雜邏輯的前提就是 模塊化 的概念。eUR28資訊網(wǎng)——每日最新資訊28at.com

但是,我在和很多的同學(xué)溝通(做技術(shù)摸底)的過程中,卻發(fā)現(xiàn):很多同學(xué)并不清楚模塊化的知識(shí)。eUR28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)說實(shí)話,開發(fā)天天用,但是猛地這么一背問,很多同學(xué)都沒有回答的很好。eUR28資訊網(wǎng)——每日最新資訊28at.com

所以說,今天咱們就借助這邊文章,來說一說:模塊化 以及 模塊打包器!eUR28資訊網(wǎng)——每日最新資訊28at.com

什么是模塊?

在 JavaScript 中,模塊就像一個(gè)單獨(dú)的代碼包,我們可以在程序的不同部分中使用它。eUR28資訊網(wǎng)——每日最新資訊28at.com

該包被封裝在指定的范圍內(nèi),可重用且易于維護(hù)。eUR28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片eUR28資訊網(wǎng)——每日最新資訊28at.com

如上圖所示:它可以通過將代碼分解為更易于使用的、更小的部分 來幫助保持代碼的組織性。eUR28資訊網(wǎng)——每日最新資訊28at.com

通常情況下:每一個(gè) JS 文件都將是一個(gè)模塊! 所以,我們可以 簡單的 把一個(gè)模塊理解為一個(gè) js 文件(注意:這只是簡單的理解)eUR28資訊網(wǎng)——每日最新資訊28at.com

JS 的模塊化體系

最初的時(shí)候,JS 是不支持任何模塊系統(tǒng)的。所以,就產(chǎn)生了很多 社區(qū)模塊化規(guī)范,比較常見的有:eUR28資訊網(wǎng)——每日最新資訊28at.com

  1. AMD
  2. CMD
  3. UMD
  4. ...

不過好處是,這些模塊化規(guī)范,在現(xiàn)在的開發(fā)中幾乎已經(jīng)不可見了。除了 UMD 規(guī)范,在庫打包中依然存在。eUR28資訊網(wǎng)——每日最新資訊28at.com

所以,從目前來看,我們不需要深入了解它們。eUR28資訊網(wǎng)——每日最新資訊28at.com

雖然,以上的社區(qū)化規(guī)范,我們不需要深入了解。但是,目前常用的 兩種 模塊化方式,大家必須要知道:eUR28資訊網(wǎng)——每日最新資訊28at.com

  1. CommonJS:主要應(yīng)用在 Node 端。以 module.exports 導(dǎo)出,以 require 導(dǎo)入。
module.exports = {  name: '張三'}-----const {name} = require('路徑')
  1. ES6 Module:主要應(yīng)用在 瀏覽器端。以 export(按需導(dǎo)出) 或者 export default(默認(rèn)導(dǎo)出) 導(dǎo)出,以 import 導(dǎo)入
export const name = '張三' // 可以寫多個(gè)// 一個(gè)模塊(JS文件)只能寫一個(gè)export default {  name: '李四'}-----import {name} from '路徑' // 按需導(dǎo)入import obj from '路徑' // 默認(rèn)導(dǎo)入

模塊打包器

常見的模塊打包器有很多,比如:Webpack、Vite、Rollup、Parcel、Browserify 等等。eUR28資訊網(wǎng)——每日最新資訊28at.com

他們的作用主要是:把一個(gè)或多個(gè)模塊,按照?qǐng)?zhí)行的順序添加到 html 文件中。打包出來的的內(nèi)容,一般被稱為 bundleeUR28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片eUR28資訊網(wǎng)——每日最新資訊28at.com

而隨著前端項(xiàng)目的復(fù)雜度越來越高,這些打包器也被賦予了更多的能力,比如:eUR28資訊網(wǎng)——每日最新資訊28at.com

  • 使用Tree Shaking過程從包中刪除未使用的代碼
  • 通過減少獲取模塊所需的 HTTP 請(qǐng)求數(shù)量來優(yōu)化 Javascript 的加載
  • 還包括代碼壓縮、捆綁包分割和代碼分塊等功能,以進(jìn)一步優(yōu)化捆綁包大小
  • 甚至還而已自定義 loader 或 plugin 來賦予它們更多的能力

答案

那么最后,讓我們回答這個(gè)問題:eUR28資訊網(wǎng)——每日最新資訊28at.com

JS 中的模塊化指的是 代碼和邏輯分割 的一種方式。通常,我們可以簡單的把一個(gè)js文件理解為一個(gè)模塊。eUR28資訊網(wǎng)——每日最新資訊28at.com

最初的 JS 中并不支持模塊化,因此延伸出來很多社區(qū)模塊化方案,比如:AMD、UMD,但是目前除了 UMD 之外,其他都已經(jīng)很少見了。eUR28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在,常用的模塊化主要有兩種:CJS(Node 端)、ESM(瀏覽器端)。eUR28資訊網(wǎng)——每日最新資訊28at.com

隨著前端項(xiàng)目越來越復(fù)雜,又延伸出來模塊打包器的概念。特別是在一些框架的使用中,這是非常有用的。eUR28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-88378-0.html常見,但是總回答不好的面試題:JS 模塊化以及模塊打包器

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 萬丈高樓平地起,一切從 PyObject 開始

下一篇: React 源碼中最重要的部分,你知道有哪些嗎?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • Find N3入網(wǎng):最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經(jīng)正式入網(wǎng),型號(hào)為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號(hào)的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • K60至尊版剛預(yù)熱 一加Ace2 Pro正面硬剛

    Redmi這邊剛?cè)缁鹑巛钡男麄髁薑60 Ultra的各種技術(shù)和硬件配置,作為競品的一加也坐不住了。一加中國區(qū)總裁李杰發(fā)布了兩條微博,表示在自家的一加Ace2上早就已經(jīng)采用了和PixelWo
  • 7月安卓手機(jī)好評(píng)榜:三星S23Ultra好評(píng)率第一

    性能榜和性價(jià)比榜之后,我們來看最后的安卓手機(jī)好評(píng)榜,數(shù)據(jù)來源安兔兔評(píng)測,收集時(shí)間2023年7月1日至7月31日,僅限國內(nèi)市場。第一名:三星Galaxy S23 Ultra好評(píng)率:95.71%在即將迎來新
  • 服務(wù)存儲(chǔ)設(shè)計(jì)模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數(shù)據(jù)從主存儲(chǔ)加載到KV緩存中,加速后續(xù)的訪問。在存在重復(fù)度的場景,Cache-Aside可以提升服務(wù)性能,降低底層存儲(chǔ)的壓力,缺點(diǎn)是緩存和底
  • 小米MIX Fold 3下月亮相:今年唯一無短板的全能折疊屏

    這段時(shí)間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都有新的進(jìn)展,其中榮耀、三星都已陸續(xù)發(fā)布了最新的折疊屏旗艦,尤其號(hào)榮耀Magi
  • 8月見!小米MIX Fold 3獲得3C認(rèn)證:支持67W快充

    這段時(shí)間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都得到了不少爆料,而小米新一代折疊屏旗艦——小米MIX Fold 3此前也屢屢被傳
  • 首發(fā)天璣9200+ iQOO Neo8系列發(fā)布首銷售價(jià)2299元起

    2023年5月23日晚,iQOO Neo8系列正式發(fā)布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro強(qiáng)悍登場,限時(shí)售價(jià)3099元起;價(jià)位段最強(qiáng)性能手機(jī)iQOO Neo8同期上市
  • 微軟發(fā)布Windows 11新版 引入全新任務(wù)欄狀態(tài)

    近日,微軟發(fā)布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務(wù)欄等,系統(tǒng)更流暢了。更新中,Windows 11加入了專門針對(duì)平板優(yōu)化的任務(wù)欄
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日?qǐng)?bào) 記者 王春   □ 本報(bào)通訊員 胡佳麗  2020年初,還在上大學(xué)的小東加入了一個(gè)大學(xué)生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top 主站蜘蛛池模板: 巴彦县| 白河县| 莒南县| 板桥市| 平陆县| 云安县| 宾川县| 蓝田县| 临澧县| 太和县| 刚察县| 商城县| 云林县| 梨树县| 开平市| 辽中县| 成都市| 顺平县| 南靖县| 电白县| 广水市| 甘孜县| 二连浩特市| 多伦县| 菏泽市| 乌拉特后旗| 隆德县| 东宁县| 临桂县| 井研县| 香格里拉县| 滦平县| 普兰县| 甘孜县| 桐庐县| 抚顺市| 榆中县| 东乌珠穆沁旗| 库尔勒市| 拉孜县| 名山县|