2017-10-26 6 views
0

私はexportに反応コンポーネントのシリーズを思わ材質UIプロジェクトからこのコードを見ていた:これらのエクスポートはどのようにインポートしますか?それらは輸出と呼ばれるのかデフォルトですか?

src/Dialog/index.js

export { default } from './Dialog'; 
export { default as DialogActions } from './DialogActions'; 
export { default as DialogTitle } from './DialogTitle'; 
export { default as DialogContent } from './DialogContent'; 
export { default as DialogContentText } from './DialogContentText'; 
export { default as withResponsiveFullScreen } from './withResponsiveFullScreen'; 

私はこれらにしようとしていた場合はどうimport文は次のようになりますか?モジュールをインポートして同じ行にエクスポートしていますか?単にexport default Dialogという構文を使用しないのはなぜですか?

+0

を「から 'インポート{DialogActions、DialogTitle、DialogContent}のような何かを行うには/ダイアログ/ index''? –

+0

@NanduKalidindiええ、それは私が混乱しているところです。なぜ、 'default'をエクスポートしている場合に名前付きエクスポート(' {')を使ってこれらをインポートするのでしょうか? –

+0

あなたはいつでも 'import DialogActions from/DialogActions 'を使うことができますが、複数のimport文を記述することなくエンドユーザが複数のモジュールimportを簡単に行えるように、すべてのエクスポートを単一のファイルから公開することができます。 –

答えて

1

これは基本的にインポートと同じ名前付きエクスポートです。

このコード:

export { default as DialogActions } from './DialogActions'; 

はとほぼ同等です:

import DialogActions from './DialogActions'; 
export DialogActions; 

あなたのファイルでそれを使用したい場合は、そのような名前のインポートを使用することができます:

import { DialogActions } from './src/Dialog/index.js' 
+0

ええ、それは私が混乱しているところです。あなたが指定したスニペットのように、 'default'モジュールをエクスポートしている場合、名前付きエクスポート(' {')を使用してこれらをインポートする理由は次のとおりです。 export DialogActions; '' ' –

+0

私にはこれはデザイン選択のように見えるので、ファイルごとにインポートするのではなく、これらのエクスポートをすべて1つのファイルからインポートすることができます。 これは副作用が含まれている場合はモジュールの読み込み順を正しくするために行うこともできますが、ここではそうは思いません。 – Gary

+0

それは私が混乱しているところです: - 'DialogActions'はデフォルトのエクスポートですが、名前付きエクスポートとしてインポートする必要がありますか? '。/ src/Dialog/index.js 'から' {DialogActions}をインポートする –

関連する問題