[解決済み】ES6での`export const`と`export default`の比較
2022-04-20 06:51:40
質問
でインポートできること以外に、大きな違いがあるかどうかを判断しようとしています。
export default
を行うだけで
import myItem from 'myItem';
そして
export const
できるんです。
import { myItem } from 'myItem';
これ以外の違いや使用例はありますか?
どのように解決するのですか?
名前付きエクスポートとデフォルトエクスポートの違いです。
export const
は、const 宣言または宣言をエクスポートする名前付きエクスポートです。
強調したいのは、ここで重要なのは
export
というキーワードを
const
は、const 宣言や宣言を行う際に使用します。
export
は、クラス宣言や関数宣言など、他の宣言にも適用されることがあります。
デフォルトのエクスポート (
export default
)
デフォルトのエクスポートは1ファイルにつき1回までです。インポートするときは、このように名前を指定してインポートする必要があります。
import MyDefaultExport from "./MyFileWithADefaultExport";
好きな名前をつけてください。
名前付きエクスポート (
export
)
名前付きエクスポートを使用すると、1つのファイルに複数の名前付きエクスポートを設定することができます。そして、中括弧で囲まれた必要な特定のエクスポートをインポートします。
// ex. importing multiple exports:
import { MyClass, MyOtherClass } from "./MyClass";
// ex. giving a named import a different name by using "as":
import { MyClass2 as MyClass2Alias } from "./MyClass2";
// use MyClass, MyOtherClass, and MyClass2Alias here
また、同じ文の中で、名前付きインポートと一緒にデフォルトを使用することも可能です。
import MyDefaultExport, { MyClass, MyOtherClass} from "./MyClass";
ネームスペースのインポート
また、ファイルから全てをオブジェクトにインポートすることも可能です。
import * as MyClasses from "./MyClass";
// use MyClasses.MyClass, MyClasses.MyOtherClass and MyClasses.default here
備考
- この構文は、デフォルトエクスポートの方がより一般的であるため、より簡潔であるとして好まれています ( 議論はこちら ).
-
デフォルトのエクスポートは、実際には、名前付きエクスポートで
default
ということで、名前付きインポートでインポートできるようになっています。import { default as MyDefaultExport } from "./MyFileWithADefaultExport";
関連
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] setTimeoutかsetIntervalか?
-
[解決済み] JavaScriptの "export default "とは何ですか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】Node.jsのrequireとES6のimport/exportを使い分ける。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み】FirefoxでGoogle Maps V3をリモートで使用すると「googleが定義されていません」と表示される。
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?