Es6-modules
ES6-モジュール
前書き
JavaScriptコードの一部を再利用する必要があるシナリオを考えます。 ES6 は、*モジュール*のコンセプトであなたを救います。
モジュールは、JavaScriptコードの関連セットを編成します。 モジュールには、変数と関数を含めることができます。 モジュールは、ファイルに記述されたJavaScriptコードのチャンクにすぎません。 デフォルトでは、モジュールの変数と関数は使用できません。 モジュール内の変数と関数は、他のファイル内からアクセスできるようにエクスポートする必要があります。 ES6のモジュールは* strictモード*でのみ機能します。 これは、モジュールで宣言された変数または関数にグローバルにアクセスできないことを意味します。
モジュールのエクスポート
exportキーワードを使用して、モジュール内のコンポーネントをエクスポートできます。 モジュールのエクスポートは次のように分類できます-
- 名前付きエクスポート
- デフォルトのエクスポート
名前付きエクスポート
名前付きエクスポートは名前で区別されます。 モジュールには複数の名前付きエクスポートを含めることができます。 モジュールは、以下に示す構文を使用して、選択したコンポーネントをエクスポートできます-
- 構文1 *
- 構文2 *
または、以下のように\ {}バインディング構文で単一のエクスポートキーワードを使用して、モジュールのコンポーネントをエクスポートすることもできます-
デフォルトのエクスポート
単一の値のみをエクスポートする必要があるモジュールは、デフォルトのエクスポートを使用できます。 モジュールごとにデフォルトのエクスポートは1つだけです。
構文
ただし、モジュールはデフォルトのエクスポートと複数の名前付きエクスポートを同時に持つことができます。
モジュールのインポート
モジュールを使用できるようにするには、* importキーワード*を使用します。 モジュールは複数の*インポートステートメント*を持つことができます。
名前付きエクスポートのインポート
名前付きエクスポートをインポートするとき、対応するコンポーネントの名前は一致する必要があります。
構文
ただし、名前付きエクスポートのインポート中は、asキーワードを使用して名前を変更できます。 以下に示す構文を使用してください-
すべての名前付きエクスポートは、アスタリスク* *演算子*を使用してオブジェクトにインポートできます。
デフォルトのエクスポートのインポート
名前付きエクスポートとは異なり、デフォルトのエクスポートは任意の名前でインポートできます。
構文
例:名前付きエクスポート
- ステップ1 *-ファイルcompany1.jsを作成し、次のコードを追加します-
- ステップ2 *-ファイルcompany2.jsを作成します。 このファイルは、company1.jsファイルで定義されたコンポーネントを使用します。 次のいずれかの方法でモジュールをインポートします。
- アプローチ1 *
- アプローチ2 *
- アプローチ3 *
- ステップ3 *-HTMLファイルを使用してモジュールを実行します
両方のモジュールを実行するには、以下に示すようにhtmlファイルを作成し、これをライブサーバーで実行する必要があります。 スクリプトタグでは attribute type = "module" を使用する必要があることに注意してください。
上記のコードの出力は以下のようになります-
デフォルトのエクスポート
ステップ1 *-ファイル *company1.js を作成し、次のコードを追加します-
ステップ2 *- *company2.js ファイルを作成します。 このファイルは、company1.jsファイルで定義されたコンポーネントを使用します。
ステップ3 *- HTMLファイル*を使用して*モジュール*を実行します
両方のモジュールを実行するには、以下に示すようにhtmlファイルを作成し、これをライブサーバーで実行する必要があります。 スクリプトタグでは attribute type = "module" を使用する必要があることに注意してください。
上記のコードの出力は以下のようになります-
例:デフォルトのエクスポートと名前付きエクスポートの組み合わせ
ステップ1 *-ファイル *company1.js を作成し、次のコードを追加します-
ステップ2 *- *company2.js ファイルを作成します。 このファイルは、 company1.js ファイルで定義されたコンポーネントを使用します。 最初にデフォルトのエクスポートをインポートし、次に名前付きエクスポートをインポートします。
- ステップ3 *-HTMLファイルを使用してモジュールを実行します
上記のコードの出力は以下のようになります-