我真的很困惑:差= foo的
export const foo
export default foo
module.exports = foo;
我知道這些都是非常基本,但有人可以區分和解釋這些給我。我真的很想明白。
我真的很困惑:差= foo的
export const foo
export default foo
module.exports = foo;
我知道這些都是非常基本,但有人可以區分和解釋這些給我。我真的很想明白。
讓一個採取這些之一。
出口常量
export const foo
這是一個名爲export ES6出口語法。您可以有許多命名導出。它表示您想要導出變量foo
的值,並且您還在該模塊中聲明該符號爲const
。
你自己實際上不能使用export const foo
,就像你自己可以使用const foo;
一樣。相反,你會的東西給它分配:
export const foo = 12;
的const
僅適用於模塊內部。它不會影響某人在從另一端的模塊中導入值時可以使用該值的內容,因爲在另一端(導入時),該值會被複制到另一個變量中。如果使用import語句創建了其他變量,那麼無論在導出端聲明瞭什麼,它都會在導入端自動const
(不能分配給它)。
這可以導入爲以下任一:
import {foo as localFoo} from 'lib';
import {foo} from 'lib';
第一進口模塊的foo
財產爲localFoo
命名變量。 第二個將模塊的foo
屬性導入foo
命名變量。
出口默認
export default foo
這也是ES6語法和說,你還想要導出的變量foo
的價值,你想這是default
出口值,所以如果有人只導入模塊而不導入模塊的任何屬性,這是他們將獲得的變量。每個模塊只能有一個default
導出。
內部,默認的出口僅僅是一個名叫出口與分配的特殊名稱default
:
import localVar from 'myLib';
這將讓mylib中的default
出口和分配給它的價值,是一個名爲localVar
本地聲明的變量。以上是這個的簡寫:
import { default as localVar } from 'lib';
因此,default
出口只是可以讓你有一個特定出口的快捷方式進口。 ES6導入/導出語法旨在使語法對於默認導入/導出儘可能簡短。但是,由於顯而易見的原因,每個模塊只有一個默認屬性。
module.exports
// inside of myModule
module.exports = foo;
這是出口變量foo
的價值node.js的語法和你在頂層出口它。當有人使用此模塊:
let x = require('myModule');
console.log(x); // will show the value of `foo` from the previous module
這不是ES6語法,而是使用module.exports
和require()
基礎設施定期ES5兼容的語法建成node.js中
出口常量富:出口常數(ES6) 出口默認富:出口對象(ES6)
以上聲明是ECMA Script 2015(又名ES6)的實施。
在一個正常的ES6 JS文件中,可以導出任何對象(變量)或常量。請注意,您不能更改常量引用,但內部結構可以修改(奇怪)。
在ES6中,模塊(腳本文件)中可以有多個導出。這可以在調用腳本中添加,因爲
import {Obj1, Obj2} from module_file
即將導出默認值,模塊中只能有一個導出默認值。並且在未定義確切名稱時導入默認值。
module.exports = foo;是較舊的實現,它與導出默認相同。除了它是用進口需要聲明,而不是進口
更多參考https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export
看看這個:http://stackoverflow.com/questions/40294870/module-exports-vs-export-default-in-node-js-and-es6 – technophobia