最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

ES6模塊化的import和export用法方法總結(jié)

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:33:22
文檔

ES6模塊化的import和export用法方法總結(jié)

ES6模塊化的import和export用法方法總結(jié):ES6之前已經(jīng)出現(xiàn)了js模塊加載的方案,最主要的是CommonJS和AMD規(guī)范。commonjs主要應(yīng)用于服務(wù)器,實(shí)現(xiàn)同步加載,如nodejs。AMD規(guī)范應(yīng)用于瀏覽器,如requirejs,為異步加載。同時(shí)還有CMD規(guī)范,為同步加載方案如seaJS。 ES6在語(yǔ)言規(guī)格的層面上,實(shí)現(xiàn)了模
推薦度:
導(dǎo)讀ES6模塊化的import和export用法方法總結(jié):ES6之前已經(jīng)出現(xiàn)了js模塊加載的方案,最主要的是CommonJS和AMD規(guī)范。commonjs主要應(yīng)用于服務(wù)器,實(shí)現(xiàn)同步加載,如nodejs。AMD規(guī)范應(yīng)用于瀏覽器,如requirejs,為異步加載。同時(shí)還有CMD規(guī)范,為同步加載方案如seaJS。 ES6在語(yǔ)言規(guī)格的層面上,實(shí)現(xiàn)了模

ES6之前已經(jīng)出現(xiàn)了js模塊加載的方案,最主要的是CommonJS和AMD規(guī)范。commonjs主要應(yīng)用于服務(wù)器,實(shí)現(xiàn)同步加載,如nodejs。AMD規(guī)范應(yīng)用于瀏覽器,如requirejs,為異步加載。同時(shí)還有CMD規(guī)范,為同步加載方案如seaJS。

ES6在語(yǔ)言規(guī)格的層面上,實(shí)現(xiàn)了模塊功能,而且實(shí)現(xiàn)得相當(dāng)簡(jiǎn)單,完全可以取代現(xiàn)有的CommonJS和AMD規(guī)范,成為瀏覽器和服務(wù)器通用的模塊解決方案。

ES6模塊主要有兩個(gè)功能:export和import

export用于對(duì)外輸出本模塊(一個(gè)文件可以理解為一個(gè)模塊)變量的接口

import用于在一個(gè)模塊中加載另一個(gè)含有export接口的模塊。

也就是說(shuō)使用export命令定義了模塊的對(duì)外接口以后,其他JS文件就可以通過(guò)import命令加載這個(gè)模塊(文件)。如下圖(假設(shè)a和b文件在同一目錄下)

// a.js

var sex="boy";
var echo=function(value){
  console.log(value)
}
export {sex,echo} 
//通過(guò)向大括號(hào)中添加sex,echo變量并且export
輸出,就可以將對(duì)應(yīng)變量值以sex、echo變量標(biāo)識(shí)符形式暴露給其他文件而被讀取到 //不能寫(xiě)成export sex這樣的方式,如果這樣就相當(dāng)于export "boy",外部文件就獲取不到該文件的內(nèi)部變量sex的值,因?yàn)闆](méi)有對(duì)外輸出變量接口,只是輸出的字符串。
// b.js
通過(guò)import獲取a.js文件的內(nèi)部變量,{}括號(hào)內(nèi)的變量來(lái)自于a.js文件export出的變量標(biāo)識(shí)符。
import {sex,echo} from "./a.js" 
console.log(sex) // boy
echo(sex) // boy

a.js文件也可以按如下export語(yǔ)法寫(xiě),但不如上邊直觀(guān),不太推薦。

// a.js
export var sex="boy";
export var echo=function(value){
  console.log(value)
}

//因?yàn)閒unction echo(){}等價(jià)于 var echo=function(){}所以也可以寫(xiě)成
export function echo(value){
   console.log(value)
}

以上是export與module的基本用法,再進(jìn)行拓展學(xué)習(xí)

前面的例子可以看出,b.js使用import命令的時(shí)候,用戶(hù)需要知道a.js所暴露出的變量標(biāo)識(shí)符,否則無(wú)法加載。可以使用export default命令,為模塊指定默認(rèn)輸出,這樣就不需要知道所要加載模塊的變量名。

//a.js
var sex="boy";
export default sex(sex不能加大括號(hào))
//原本直接export sex外部是無(wú)法識(shí)別的,加上default就可以了.但是一個(gè)文件內(nèi)最多只能有一個(gè)export default。
其實(shí)此處相當(dāng)于為sex變量值"boy"起了一個(gè)系統(tǒng)默認(rèn)的變量名default,自然default只能有一個(gè)值,所以一個(gè)文件內(nèi)不能有多個(gè)export default。
// b.js
本質(zhì)上,a.js文件的export default
輸出一個(gè)叫做default的變量,然后系統(tǒng)允許你為它取任意名字。所以可以為import的模塊起任何變量名,且不需要用大括號(hào)包含 import any from "./a.js" import any12 from "./a.js" console.log(any,any12) // boy,boy

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

文檔

ES6模塊化的import和export用法方法總結(jié)

ES6模塊化的import和export用法方法總結(jié):ES6之前已經(jīng)出現(xiàn)了js模塊加載的方案,最主要的是CommonJS和AMD規(guī)范。commonjs主要應(yīng)用于服務(wù)器,實(shí)現(xiàn)同步加載,如nodejs。AMD規(guī)范應(yīng)用于瀏覽器,如requirejs,為異步加載。同時(shí)還有CMD規(guī)范,為同步加載方案如seaJS。 ES6在語(yǔ)言規(guī)格的層面上,實(shí)現(xiàn)了模
推薦度:
標(biāo)簽: 模塊 import ES6
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top