ES6 import & export

Node背景介紹

Node是一個js文件的執(zhí)行環(huán)境(類似于java的jvm),所以可以執(zhí)行任何js文件。在命令行輸入:node yourJSFileName.js 即可,執(zhí)行js文件中的內(nèi)容。

模塊化module

node.js模塊化系統(tǒng)中,每一個js文件都被看做是一個模塊module。在實際操作中,node既然可以執(zhí)行js文件,肯定一個文件解決的問題有限(不方便維護(hù))。所以,js文件可以引用其他js文件。詳細(xì)參考官方說明文檔: https://nodejs.org/api/modules.html

import && export

import & export 屬于ES6用法:

  1. Node 9 (?)之前不支持import & export,只能用require && module.exports
  2. jest測試框架目前不支持ES6

以上情況都需要使用babel對ES6的模塊輸出進(jìn)行處理,將所有輸出都賦值給exports,并帶上一個標(biāo)志_esModule標(biāo)明這個是由es6轉(zhuǎn)化來的ES5的commonjs輸出,再進(jìn)行編譯運(yùn)行。

babel將模塊的導(dǎo)出轉(zhuǎn)換為commonjs規(guī)范后,也會將引入 import 也轉(zhuǎn)換為 commonjs 規(guī)范。即采用 require 去引用模塊,再加以一定的處理,符合es6的使用意圖。

import export語法

import defaultExport from "module-name";   // 針對 export default defaltExport 的情況
import { export } from "module-name";   // 針對 export export的情況
import { export as alias } from "module-name";   // 針對 export export的情況,且指定了引用名,在該文件內(nèi)可使用引用名進(jìn)行使用
import { export1 , export2 } from "module-name";  //從同一module中引用多個常量、函數(shù)、文件、模塊等
import { foo , bar } from "module-name/path/to/specific/un-exported/file";
import { export1 , export2 as alias2 , [...] } from "module-name";
import defaultExport, { export [ , [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import "module-name";

export & import 的對象可以是常量、函數(shù)、對象、文件、模塊等

defaultExport
導(dǎo)入模塊的默認(rèn)導(dǎo)出接口的引用名,一個文件只能有一個export defalt,其他文件import時不需要加{}
**注意:export default const a = 12這種寫法是會報錯的,default后直接跟要導(dǎo)出的內(nèi)容,如

export default new ApolloClient();

module-name
要導(dǎo)入的模塊。通常是包含目標(biāo)模塊的.js文件的相對或絕對路徑名,可以不包括.js擴(kuò)展名。某些特定的打包工具可能允許或需要使用擴(kuò)展或依賴文件,它會檢查比對你的運(yùn)行環(huán)境。只允許單引號和雙引號的字符串。

name
導(dǎo)入模塊對象整體的別名,在引用導(dǎo)入模塊時,它將作為一個命名空間來使用。

export, exportN
被導(dǎo)入模塊的導(dǎo)出接口的名稱。

alias, aliasN
將import的對象(常量、模塊、函數(shù)、文件等)在導(dǎo)入的文件中重命名(因為導(dǎo)出的模塊必須與導(dǎo)入的模塊命名一致,通過重命名可以避免當(dāng)前程序中有與之相同的同名對象,在導(dǎo)入文件中可以使用該名稱進(jìn)行調(diào)用。
如:

import { bark as dogBark } from ../helper/animal
// 在該文件使用時,可以如下使用
const sound = dogBark.sound   
alias重命名導(dǎo)入接口

使用舉例

export.png

export default.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容