export毅人、export default和import用法詳解,這一篇就夠了

這三個(gè)名詞功能的出現(xiàn)是為了實(shí)現(xiàn) js 的模塊化的尖殃,屬于es6語法丈莺。

這仨沒出現(xiàn)之前,我們給 js 按功能分為不同的文件送丰,在 html 文件頁面里引用的時(shí)候要使用大量的 script 標(biāo)簽缔俄,如果都放在一個(gè)文件里呢,又可能出現(xiàn)只使用一兩個(gè)功能器躏,卻要引入相對大的一個(gè)文件俐载,還有運(yùn)行環(huán)境不同產(chǎn)生的等等問題。

接著 js 模塊化即可在js中按需導(dǎo)入模塊功能就出現(xiàn)了登失。

字面意思就可以看出 export遏佣、export default 負(fù)責(zé) 導(dǎo)出import 則負(fù)責(zé) 導(dǎo)入揽浙。

export 在一個(gè) js 文件中可以有多個(gè)状婶,export default 最多只能有一個(gè)。

1馅巷、export

方式1:先聲明后導(dǎo)出膛虫,假設(shè) test1.js

const a1 = 'a1' //var 、let
function fn1() {
  console.log('我是fn1');
}
export { a1, fn1 }

方式2:導(dǎo)出與聲明一起令杈,假設(shè) test2.js
export的函數(shù)必須命名

export const a2 = 'a2' //var 走敌、let
export function fn2() {
    console.log('我是fn2');
}

混用:不限個(gè)數(shù)當(dāng)然是可以混用的碴倾,假設(shè) test3.js

const a3 = 'a3'
export function fn3() {
    console.log('我是fn3');
}
export {a3}

不管上面哪種形式都可以用下面兩種方式使用逗噩。

使用1:用哪個(gè)取哪個(gè),還可以命名別名

import {fn1} from './test1.js'
import {a2 as ha,fn2} from './test2.js'
import {a3} from './test3.js'
fn1()
console.log(ha)
fn2()
console.log(a3)

使用2:全部取出跌榔,對象方式使用

import * as test1 from './test1.js'
import * as test3 from './test3.js'
test1.fn1()
test3.fn3()
console.log(test3.a3)

2异雁、export default

方式1:先聲明后導(dǎo)出,假設(shè) test4.js

function fn4() {
    console.log('我是fn4');
}
export default fn4

方式2:導(dǎo)出與聲明一起僧须,假設(shè)test5.js

export default function fn5() {
    console.log('我是fn5');
}

方式2這里 fn5 可以是匿名函數(shù)如下纲刀,這與 export 必須命名函數(shù)是一個(gè)區(qū)別。為什么這里可以是匿名呢担平?原來 export default 導(dǎo)出的函數(shù)在 import 導(dǎo)出的時(shí)候都會(huì)重新命名示绊,具體意思看下面的示例。

export default function() {
    console.log('我是fn5');
}

使用:export default 只有一種使用方式

import test5 from './test5.js'
test5()

這個(gè) test5 就是我們給 export default function fn5() 或者 export default function() 重新定義的名字暂论。

有心的小伙伴可能注意到這里并沒有給出 export default 導(dǎo)出 const | let | var 這種變量的示例面褐,那是因?yàn)檫@種變量是不可以直接像 export 一樣直接出現(xiàn)在后面的,多值則需要以對象的形式導(dǎo)出取胎,如下(test6.js):

const a7='a7'   //  let,var
export default {
    a6:'a6',
    a7:a7,
    fn6(){ 
       console.log('我是fn6'); 
    }
}

使用還是跟使用 test5.js 一樣的

import moreEle from './test6.js'
console.log(moreEle.a6)
moreEle.fn6()

3展哭、exportexport default 混用湃窍,test7.js

const a1 = 'a1' //var 、let
function fn1() {
    console.log('我是fn1');
}
export { a1, fn1 }

export const a2 = 'a2' //var 匪傍、let
export function fn2() {
    console.log('我是fn2');
}

const a3 = 'a3'
export function fn3() {
    console.log('我是fn3');
}
export { a3 }

export default function fn5() {
    console.log('我是fn5');
}

以上 test7.js 使用的時(shí)候您市,要使用 export default 定義的就只能是 import [name] from './test7.js' 形式,export 也是用自己的那兩種方式 import {[name],[name] as [alias]} from './test7.js'(即必須有花括號(hào)) 或者 import * as [alias] from './test7.js'役衡,注意后一種 * 盡管是導(dǎo)出全部的意思茵休,但這并不包括 export default 導(dǎo)出的。

感謝閱讀映挂,喜歡的話點(diǎn)個(gè)贊吧:)
更多內(nèi)容請關(guān)注后續(xù)文章泽篮。。柑船。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載帽撑,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末鞍时,一起剝皮案震驚了整個(gè)濱河市亏拉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逆巍,老刑警劉巖及塘,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異锐极,居然都是意外死亡笙僚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門灵再,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肋层,“玉大人,你說我怎么就攤上這事翎迁《安” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵汪榔,是天一觀的道長蒲拉。 經(jīng)常有香客問我,道長痴腌,這世上最難降的妖魔是什么雌团? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮士聪,結(jié)果婚禮上锦援,老公的妹妹穿的比我還像新娘。我一直安慰自己戚嗅,他們只是感情好雨涛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布枢舶。 她就那樣靜靜地躺著,像睡著了一般替久。 火紅的嫁衣襯著肌膚如雪凉泄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天蚯根,我揣著相機(jī)與錄音后众,去河邊找鬼。 笑死颅拦,一個(gè)胖子當(dāng)著我的面吹牛蒂誉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播距帅,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼右锨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碌秸?” 一聲冷哼從身側(cè)響起绍移,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讥电,沒想到半個(gè)月后蹂窖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恩敌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年瞬测,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纠炮。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡月趟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抗碰,到底是詐尸還是另有隱情狮斗,我是刑警寧澤绽乔,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布弧蝇,位于F島的核電站,受9級特大地震影響折砸,放射性物質(zhì)發(fā)生泄漏看疗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一睦授、第九天 我趴在偏房一處隱蔽的房頂上張望两芳。 院中可真熱鬧,春花似錦去枷、人聲如沸怖辆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竖螃。三九已至淑廊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間特咆,已是汗流浹背季惩。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腻格,地道東北人画拾。 一個(gè)月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像菜职,于是被迫代替她去往敵國和親青抛。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348