export default 和 export 區別


1.export與export default均可用於導出常量、函數、文件、模塊等
2.在一個文件或模塊中,export、import可以有多個,export default僅有一個
3.通過export方式導出,在導入時要加{ },export default則不需要
4. 
(1) 輸出單個值,使用 export default
(2) 輸出多個值,使用 export
(3) export default與普通的 export不要同時使用

 

示例:

1.export //a.js
export const str = "blablabla~"; export function log(sth) { return sth; } 對應的導入方式: //b.js
import { str, log } from 'a'; //也可以分開寫兩次,導入的時候帶花括號

2.export default
//a.js
const str = "blablabla~"; export default str;
其實此處相當於為str變量值"blablabla"起了一個系統默認的變量名default,自然default只能有一個值,所以一個文件內不能有多個export default。
對應的導入方式: //b.js import str from 'a'; //導入的時候沒有花括號
本質上,a.js文件的export default輸出一個叫做default的變量,然后系統允許你為它取任意名字。所以可以為import的模塊起任何變量名,且不需要用大括號包含
 

 import的文件會自動執行一次。

import會加載且僅加載一次導入的模塊

 

ES6模塊化與commonjs、amd區別:

ES6 模塊的設計思想是盡量的靜態化,使得編譯時就能確定模塊的依賴關系,以及輸入和輸出的變量。CommonJS 和 AMD 模塊,都只能在運行時確定這些東西。

 

模塊化統一:

 

// 第一組
export default function crc32() { // 輸出
  // ...
}

import crc32 from 'crc32'; // 輸入

// 第二組
export function crc32() { // 輸出
  // ...
};

import {crc32} from 'crc32'; // 輸入

  

上面代碼的兩組寫法,第一組是使用export default時,對應的import語句不需要使用大括號;第二組是不使用export default時,對應的import語句需要使用大括號。

export default命令用於指定模塊的默認輸出。顯然,一個模塊只能有一個默認輸出,因此export default命令只能使用一次。所以,import命令后面才不用加大括號,因為只可能唯一對應export default命令。

 


免責聲明!

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



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