成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

es6- export and import

Worktile / 902人閱讀

摘要:如果我們想要包含得多帶帶導(dǎo)入和導(dǎo)出二和的注意點(diǎn)可能的錯(cuò)誤在沒有的情況下,不能匿名函數(shù)前面我們講到可以在定義一個(gè)函數(shù)的時(shí)候就,但是這個(gè)函數(shù)不能是匿名函數(shù),除非這個(gè)函數(shù)作為導(dǎo)出。

一: export和import的正常用法
1:export變量

// ./module/example.js

export var firstName = "roger";
export const lastName = "waters";
export let dob = 1944;

// index.js
import  {firstName, lastName, dob} from "./module/example.js";

2:export方法

// ./module/example.js
//定義方法的時(shí)候,就可以export
export function sum(a, b) {
    return a + b;
}

function multiply(a, b) {
    return a * b;
}
//也可以先定義,再export
export { multiply };

在別的文件里面import上面2個(gè)方法,是一樣的

//./index.js
import  {sum, multiply} from "./module/example.js";    

3:export重命名
有時(shí)候你也許不想用一個(gè)變量,方法,類的原本的名字,而是想換一個(gè)別的名字。那么你可以使用 as
,而且在export和import的時(shí)候都可以,例如:

// ./module/example.js
function sum(a, b) {
    return a + b;
}
export {sum as add};

//./index.js
import  {add} from "./module/example.js";

4: import重命名
在第三點(diǎn)里面,我們看到了可以在export的時(shí)候重命名變量。同樣的效果,也可以在import的時(shí)候做,依然是用as

// ./module/example.js
function sum(a, b) {
    return a + b;
}
export {sum};

//./index.js
import  {sum as add} from "./module/example.js";

//此時(shí)在index.js里面可以被使用的方法是add(),而不是sum()

5:export default
我們可以給一個(gè)js module制定默認(rèn)值,也就是這里的default。導(dǎo)出一個(gè)default和前面我們講到的導(dǎo)出一個(gè)變量一樣也是有三種方式:

1. 在定義的時(shí)候export

    //./module/example.js
    export  default  function(a, b) {
        return a + b;
    }
    
    //./index.js
    import  sum  from "./module/example.js";

export的可以是一個(gè)匿名函數(shù),在導(dǎo)入的時(shí)候,用任意合理的名字代表默認(rèn)導(dǎo)出,但是注意與非default變量的區(qū)別在于,這里沒有花括號({})
2. 先定義再export

    //./module/example.js
    function sum(a, b) {
        return a + b;
    }
    export default sum;
    
    //./index.js
    import  sum  from "./module/example.js";

在import的時(shí)候,依然可以是任意的合理的變量名,不一定得是sum。

3. 使用 as

    //./module/example.js
    function sum(a, b) {
        return a + b;
    }
    export {sum as default}

    //./index.js
    import  sum  from "./module/example.js";

在import的時(shí)候,依然可以是任意的合理的變量名,不一定得是sum。

6:export default和其他變量一起
一個(gè)module可以export default的同時(shí)export其他變量,語法與只export其中一樣沒有區(qū)別;只是在import的時(shí)候,default一定要在非default前:

//./module/example.js
export var firstName = "roger";
export const lastName = "waters";
export let dob = 1944;

function sum(a, b) {
    return a + b;
}
export {sum as default}

// ./index.js
//語法正確
import  sum, {firstName, lastName, dob}  from "./module/example.js";

//error: 語法錯(cuò)誤
import  {firstName, lastName, dob}, sum  from "./module/example.js";

7: import *
當(dāng)我們想把一個(gè)module所有export的東西都一次性import的時(shí)候,就可以使用 import * as

// ./module/example.js
export var firstName = "roger";
export const lastName = "waters";
export let dob = 1944;

function sum(a, b) {
    return a + b;
}
export {sum as default}

//./index.js
import  * as example  from "./module/example.js";

console.log(example.firstName);
console.log(example.lastName);
console.log(example.dob);
example.default(1, 2);

這里特別注意的是,這里的example.default就是我們export的default變量。

8:export import
我們可以把從別的module導(dǎo)入的變量作為本module的導(dǎo)出。例如下面的例子./mian.js從./idnex.js導(dǎo)入變量firstName, 而firstName原本是./index.js從./module/example.js導(dǎo)入的:

//./module/example.js
export var firstName = "roger";
export const lastName = "waters";
export let dob = 1944;

function sum(a, b) {
    return a + b;
}
export {sum as default}

//./index.js
import {firstName}  from "./module/example.js";
export {firstName};

//./main.js
import {firstName} from "./index.js"

在./index.js文件里的2行代碼等同于下面的一行:

export {firstName} from "./module/example";

這個(gè)時(shí)候也可以使用 as:

export {firstName as nickName} from "./module/example";

也可以使用 *

export * from "./module/example";

export *的時(shí)候,是不包含default的。如果我們想要包含default,得多帶帶導(dǎo)入和導(dǎo)出default:

//./module/example.js
export var firstName = "roger";
export const lastName = "waters";
export let dob = 1944;

function sum(a, b) {
    return a + b;
}
export {sum as default}

//./index.js
export * from "./module/example";
import sum from "./module/example";
export {sum};

//./main.js
import {firstName, lastName, dob} from "./index.js"
import {sum} from "./index"

二:export和import的注意點(diǎn)可能的錯(cuò)誤

1:在沒有default的情況下,不能export匿名函數(shù)

前面我們講到可以在定義一個(gè)函數(shù)的時(shí)候就export,但是這個(gè)函數(shù)不能是匿名函數(shù),除非這個(gè)函數(shù)作為default導(dǎo)出。

2:export和import都只能用在module的最高層scope

不能在if..else,方法里,或者任何需要在runtime的時(shí)候才能確定下來的情況下,使用export和import。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/103796.html

相關(guān)文章

  • ES6模塊默認(rèn)導(dǎo)出和變量綁定(Default Exports and Exporting bindi

    摘要:背景現(xiàn)在最主流的模塊機(jī)制是和。模塊模塊導(dǎo)出的變量始終指向的是模塊內(nèi)部的變量,使用時(shí)可以獲得此變量的最新值。我們叫導(dǎo)出綁定。但是在看對默認(rèn)導(dǎo)出代碼的轉(zhuǎn)換時(shí),發(fā)現(xiàn)實(shí)現(xiàn)并不使用。所以改了并不等于改了,自然的東西沒有變化。 背景 JavaScript 現(xiàn)在最主流的模塊機(jī)制是 commonjs 和 ES6 module。兩者不單是語法上有所區(qū)別,在加載的時(shí)候也有所不同,譬如 commonjs 是...

    Benedict Evans 評論0 收藏0
  • ES6 的模塊系統(tǒng)

    摘要:的模塊系統(tǒng)被設(shè)計(jì)成讓你可以一次性引入多個(gè)變量。動(dòng)態(tài)靜態(tài),或者說規(guī)矩和如何打破規(guī)矩作為一門動(dòng)態(tài)編程語言,令人驚訝地?fù)碛幸粋€(gè)靜態(tài)的模塊系統(tǒng)。只要你的需求都是靜態(tài)的話,這個(gè)模塊系統(tǒng)還是很的。 此文為翻譯,原文地址在這兒:https://hacks.mozilla.org/2015/08/es6-in-depth-modules/ ES6 是 ECMAScript 第 6 版本的簡稱,這是新一...

    MudOnTire 評論0 收藏0
  • import and export 之 (export

    摘要:和必須始終顯示在其各自用法的頂級范圍中。也就是說不可以在條件中放置或它們必須放在所有塊和函數(shù)之外。不幸的是,它存在一些缺點(diǎn),并正式地不鼓勵(lì)這樣做。用戶可以另外手動(dòng)將和列為命名導(dǎo)入,如果他們想要的話。 ES6提供了兩個(gè)關(guān)鍵字import導(dǎo)入和export導(dǎo)出,語法上有些差別。!important: import和export必須,始終顯示在,其各自用法的,頂級范圍中。也就是說不可以在if...

    weij 評論0 收藏0
  • [譯] 在你學(xué)習(xí) React 之前必備的 JavaScript 基礎(chǔ)

    摘要:前言在理想的狀態(tài)下,你可以在深入了解之前了解和開發(fā)的所有知識。繼承另一個(gè)類的類,通常稱為類或類,而正在擴(kuò)展的類稱為類或類。這種類型的組件稱為無狀態(tài)功能組件。在你有足夠的信心構(gòu)建用戶界面之后,最好學(xué)習(xí)。 原文地址:JavaScript Basics Before You Learn React 原文作者: Nathan Sebhastian 寫在前面 為了不浪費(fèi)大家的寶貴時(shí)間,在開...

    Chaz 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<