ES6模塊的兩個功能:export和import


原文:https://www.jianshu.com/p/d782c94afbab

1、export用於對外輸出本模塊(一個文件可以理解為一個模塊)的變量接口

2、import用於在一個模塊中加載另一個含有export接口的模塊,也就是說使用了export命令定義了模塊的對外接口后,其他JS文件就可以通過import命令加載這個模塊

3、注意:export輸出對外接口時有兩種情況,一個是帶有{},一個是不帶有{},兩者之間的區別請分析以下代碼:
(1)情況一:使用{}

// a.js var sex = "male"; var output = function(value){   console.log(value) } export {sex,log} //通過向大括號中添加sex,output變量並且export輸出,就可以將對應變量值以sex、output變量標識符形式暴露給其他文件而被讀取到 //不能寫成export sex這樣的方式,如果這樣就相當於export "male",外部文件就獲取不到該文件的內部變量sex的值,因為沒有對外輸出變量接口,只是輸出的字符串。 
// b.js
通過import獲取a.js文件的內部變量,{}括號內的變量來自於a.js文件export出的變量標識符。
import {sex,log} from "./a.js" 
console.log(sex)   // boy
output(sex) // boy

分析:前面的例子可以看出,b.js使用import命令的時候,用戶需要知道a.js所暴露出的變量標識符,否則無法加載。可以使用export default命令,為模塊指定默認輸出,這樣就不需要知道所要加載模塊的變量名,也就是第二種情況

(2)情況二:不使用{}

// a.js var sex = "male"; export default sex(sex不能加大括號) //原本直接export sex外部是無法識別的,加上default就可以了。但是一個文件內最多只能有一個export default。 其實此處相當於為sex變量值"male"起了一個系統默認的變量名default,自然default只能有一個值,所以一個文件內不能有多個export default。 
// b.js本質上,a.js文件的export default輸出一個叫做default的變量,然后系統允許你為它取任意名字。所以可以為import的模塊起任何變量名,且不需要用大括號包含 import suibian1 from "./a.js" import suibian2 from "./a.js" console.log(suibian1,suibian2) // boy,boy


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM