久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 千鋒web前端培訓(xùn)班:詳解模塊化require 和 import的區(qū)別

千鋒web前端培訓(xùn)班:詳解模塊化require 和 import的區(qū)別

來源:千鋒教育
發(fā)布人:小千
時(shí)間: 2021-08-27 09:45:00 1630028700

      在前端開發(fā)中,我們可以使用很多模塊化的庫來幫助我們更好的實(shí)現(xiàn)效果,有一些庫的功能類似很多同學(xué)就不知道該如何選擇,比如require和import,今天小千就給大家介紹一下兩者的區(qū)別。

      一、區(qū)別

      1.require是commonjs的規(guī)范,在node中實(shí)現(xiàn)的api,import是es的語法,由編譯器處理。所以import可以做模塊依賴的靜態(tài)分析,配合webpack、rollup等可以做treeshaking。

      2.commonjs導(dǎo)出的值會(huì)復(fù)制一份,require引入的是復(fù)制之后的值(引用類型只復(fù)制引用),es module導(dǎo)出的值是同一份(不包括export default),不管是基礎(chǔ)類型還是應(yīng)用類型。

      3.寫法上有差別,import可以使用import * 引入全部的export,也可以使用import aaa, { bbb}的方式分別引入default和非default的export,相比require更靈活。

      二、require和import會(huì)不會(huì)循環(huán)引用?

      答案是不會(huì),因?yàn)槟K執(zhí)行后會(huì)把導(dǎo)出的值緩存,下次再require或者import不會(huì)再次執(zhí)行。這樣也就不會(huì)循環(huán)引用了。比如a引入了b,b引入了a,如果a再次執(zhí)行那么會(huì)再引入b,那就循環(huán)起來了,但實(shí)際上會(huì)做緩存,再次引入不會(huì)再執(zhí)行??梢酝ㄟ^require.cache來查看緩存的模塊,key為require.resolve(path)的結(jié)果。

      三、模塊中有定時(shí)器改變了導(dǎo)出的值,導(dǎo)出的值會(huì)不會(huì)變?

千鋒<a href=web前端培訓(xùn)1" />

      結(jié)果是import引入的值是2,而require引入的值一直是1,這也是require和imort很重要的一個(gè)區(qū)別,es module的export導(dǎo)出的值會(huì)靜態(tài)的綁定,而commonjs exports導(dǎo)出的值是一個(gè)對(duì)象,會(huì)復(fù)制一份。這樣也就出現(xiàn)了這樣的現(xiàn)象。

      四、總結(jié)

      問 require和import的區(qū)別就是問commonjs和es module的區(qū)別,這兩者一個(gè)是api的規(guī)范,一個(gè)是語言的語法,所以后者可以做靜態(tài)分析,基于這個(gè)實(shí)現(xiàn)treeshaking,同時(shí)es module會(huì)靜態(tài)的綁定導(dǎo)出的值,而commonjs會(huì)復(fù)制一份。但兩者都會(huì)做緩存,所以不會(huì)有循環(huán)引用問題。

      以上就是require和import的區(qū)別介紹了,最后歡迎對(duì)web前端開發(fā)培訓(xùn)感興趣的同學(xué)來到千鋒WEB前端培訓(xùn)班參加我們的前端培訓(xùn)課程的學(xué)習(xí),現(xiàn)在咨詢還有免費(fèi)學(xué)習(xí)資料和兩周免費(fèi)試聽等你來。

      千鋒web前端培訓(xùn):http://www.2667701.com/page/html5.html

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
有什么工具能進(jìn)行服務(wù)器性能監(jiān)控?

一、NagiosNagios是一款廣泛使用的開源監(jiān)控工具,用于監(jiān)控服務(wù)器、網(wǎng)絡(luò)設(shè)備和應(yīng)用程序的狀態(tài)和性能。它支持對(duì)各種指標(biāo)的監(jiān)控,如CPU使用率、內(nèi)...詳情>>

2023-10-14 00:12:36
應(yīng)用服務(wù)器與Web服務(wù)器有什么區(qū)別?

一、功能定位不同應(yīng)用服務(wù)器是一種軟件平臺(tái),用于提供各種應(yīng)用程序的運(yùn)行環(huán)境。它負(fù)責(zé)管理和執(zhí)行應(yīng)用程序的邏輯,處理數(shù)據(jù)傳輸和事務(wù)管理等任務(wù)...詳情>>

2023-10-14 00:05:39
番茄工作法的優(yōu)點(diǎn)和缺陷都有哪些?

一、番茄工作法概述番茄工作法是一種時(shí)間管理技術(shù),旨在提高工作效率和集中注意力。該方法由弗朗西斯科·西里洛于1980年代開發(fā),并逐漸流行起來...詳情>>

2023-10-14 00:00:49
PHP數(shù)組具的特性有哪些?

一、有序集合PHP數(shù)組是一個(gè)有序的數(shù)據(jù)集合,它可以存儲(chǔ)多個(gè)值,并使用索引來訪問這些值。索引可以是數(shù)字或字符串,允許你以靈活的方式組織和訪...詳情>>

2023-10-13 23:46:55
C語言中定義與聲明的含義是什么?

一、定義的含義在C語言中,定義是指為變量、函數(shù)或類型分配存儲(chǔ)空間并指定其屬性和初始值的過程。定義的主要含義如下:分配存儲(chǔ)空間:定義一個(gè)...詳情>>

2023-10-13 23:32:41
快速通道