ES6中export default 命令的詳解

2021-08-26 12:35:13 字數 2626 閱讀 6169

我們知道在學習vue的時候export default{}是不可缺少的,但是它的含義我們必須理解。 

export default{}這是在復用元件的時候用到的。假設我們寫了乙個單頁面元件 a 檔案,而在另乙個檔案 b 裡面需要用到它,那麼就要用 es6 的 import/export 語法 ,在檔案 a 中定義輸出介面 export,在檔案 b 中引入 import,把引入的元件用起來,這樣就可以復用元件 a 去配合檔案 b 生成 html 頁面了。

為了加深印象特在此總結如下

使用import命令的時候,使用者需要知道所要載入的變數名或函式名,否則無法載入。但是,使用者肯定希望快速上手,未必願意閱讀文件,去了解模組有哪些屬性和方法。為了給使用者提供方便,讓他們不用閱讀文件就能載入模組,就要用到export default命令,為模組指定預設輸出。

1、基本用法例如

這是乙個模組檔案export-default.js,它的預設輸出是乙個函式

export default function ()

import customname from './export-default';

customname(); //'foo'

//這是的import命令,可以用任意名稱指向export-default.js輸出的方法,這時就不需要知道原模組輸出的函式名。

需要注意的是,這時import命令後面,不使用大括號。

其他模組載入該模組時,import命令可以為該匿名函式指定任意名字。

2、export default命令用在非匿名函式前

// export-default.js

export default function foo()

// 或者寫成

function foo()

export default foo;

//上面**中,foo函式的函式名foo,在模組外部是無效的。載入的時候,視同匿名函式載入。

3、export 加default和加的區別

// 第一組

export default function crc32()

import crc32 from 'crc32'; // 輸入

// 第二組

export function crc32() ;

import from 'crc32'; // 輸入

第一組是使用export default時,對應的import語句不需要使用大括號; 

第二組是不使用export default時,對應的import語句需要使用大括號。 

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

4、export default就是輸出乙個叫做default的變數或方法,然後系統允許你為它取任意名字

// 正確

export var a = 1;

// 正確

var a = 1;

export default a;

// 錯誤

export default var a = 1;

//上面**中,export default a的含義是將變數a的值賦給變數default。所以,最後一種寫法會報錯。

5、因為export default 命令的本質是將後面的值,賦給default變數,所以可以直接將乙個值寫在export default之後

// 正確

export default 42;

// 報錯 原因這一句報錯是因為沒有指定對外的介面,而前一句指定外對介面為default。

export 42;

6、export default命令,輸入模組時就非常直觀了,以輸入 lodash 模組為例

import _ from 'lodash';
如果想在一條import語句中,同時輸入預設方法和其他介面,可以寫成下面這樣

import _,  from 'lodash';
對應上面**的export語句如下。

export default function (obj) 

export function each(obj, iterator, context)

export ;//暴露出foreach介面,預設指向each介面,即foreach和each指向同乙個方法。

7、export default也可以用來輸出類

// myclass.js

export default class

// main.js

import myclass from 'myclass';

let o = new myclass();

ES6系列 ES6簡介

2015年6月17日,ecmascript的第六個版本正式發布,該版本正式名稱為ecmascript 2015,但通常被稱為ecmascript 6或者es6。瀏覽器對es6的支援情況 es6主要應用於node.js,如果想用在瀏覽器中,就需要使用轉碼器 將es6 轉成es5 這意味著,可以用es6...

ES6系列 詳解ES6中的Map

map類似於物件,都用於儲存key value結構的資料。但是,在傳統的物件上,只能用字串或者symbol來作為鍵名。然而,map與物件最大的差別就在於它可以各種資料型別作為鍵名。map是乙個建構函式,用於例項化例項。const m newmap const o m.set o,content m....

ES6學習筆記之ES6中的模組

1 import和export基本使用 重點 在es6中新增了js檔案的暴露和引入的新寫法 import和export node es6 require import exports.export module.exports default 使用export const 暴露函式名暴露函式,imp...