React/Redux復習2 (ECMAScriptモジュール)

jsprimer.net

[ES2015] ECMAScriptモジュール

  • ECMAScriptモジュールはTodoアプリのユースケースで実際に動かしながら学ぶため、ここでは構文の説明とモジュールのイメージをつかむのが目的です。
  • この章のサンプルコードを実際に動かすためにはローカルサーバーなどの準備が必要です。
  • そのため、ユースケースの章を先に読んでから戻ってきてもかまいません。

  • モジュールは、保守性・名前空間・再利用性のために使われます。

    • 保守性: 依存性の高いコードの集合を一箇所にまとめ、それ以外のモジュールへの依存性を減らせます
    • 名前空間: モジュールごとに分かれたスコープがあり、グローバルの名前空間を汚染しません
    • 再利用性: 便利な変数や関数を複数の場所にコピーアンドペーストせず、モジュールとして再利用できます
  • 1つのJavaScriptモジュールは1つのJavaScriptファイルに対応します。

  • モジュールは変数や関数などを外部にエクスポートできます。
  • また、別のモジュールで宣言された変数や関数などをインポートできます。
  • この章では ECMAScriptモジュール(ESモジュール、JSモジュールとも呼ばれる) について見ていきます。




jsprimer.net

ECMAScriptモジュールを実行する

  • 作成したECMAScriptモジュールを実行するためには、起点となるJavaScriptファイルをECMAScriptモジュールとしてウェブブラウザに読み込ませる必要があります。
  • ウェブブラウザはscript要素によってJavaScriptファイルを読み込み、実行します。

  • 次のようにscript要素にtype="module"属性を付与すると、ウェブブラウザはJavaScriptファイルをECMAScriptモジュールとして読み込みます。

<!-- my-module.jsをECMAScriptモジュールとして読み込む -->
<script type="module" src="./my-module.js"></script>
<!-- インラインでも同じ -->
<script type="module">
import { foo } from "./my-module.js";
</script>
  • type="module"属性が付与されない場合は通常のスクリプトとして扱われ、ECMAScriptモジュールの機能は使えません。
  • スクリプトとして読み込まれたJavaScriptでimport文やexport文を使用すると、構文エラーが発生します。