🦔

【JavaScript】ESモジュールについて初心者メモ

に公開

はじめに

ファイルを役割ごとに分けて使用することを、いざ実践してみようとしたとき、そのファイルの内容を別のファイルにどうやって適用するのか、悩んだことはないでしょうか?

この記事では、どのようにしてファイルに記述した内容を別のファイルに適用するのか、その方法の1つを解説していきます。

ESモジュールとは

ESモジュールは、JavaScriptのコードを複数のファイルに分割し、お互いに連携させるための仕組みです。これは、コードを整理し、再利用しやすくするために非常に重要とされています。

モジュール

プログラムを1つのファイルで書くと、プログラムが大規模化したとき、コードが複雑で読みにくくなり、管理が難しくなります。

モジュールを使うと、コードを部品(モジュール)として小さなファイルに分割できます。
例えば、以下のように役割ごとにファイルを分けることができます。

  • Word.js: 言葉に関するクラス(言葉、言葉の解説など)
  • Emotion.js: 感情に関する(感情、感情を表す絵文字など)
  • main.js: メイン関数(実際に処理を行なうファイル)

このように分割することで、それぞれのファイルがシンプルになり、誰が読んでも理解しやすくなります。

ESモジュールの基本ルール

ESモジュールには、主に2つのキーワードがあります。

1. export

他のファイルで使いたい変数や関数、クラスなどを公開するために使います。

Wordクラス
// classの前に"export"を付けます
export class Word {
    constructor(word, definition, pictureUrl){
        this.word = word;
        this.definition = definition;
        this.pictureUrl = pictureUrl;
    }
}

2. import

export された変数や関数、クラスなどを使えるようにするために使います。
→ 他のファイルで公開されている部品を「読み込む」ために使います。

Wordクラスをインポート
import { Word } from './Word.js';

これによって、使用したいファイルでクラスなどを使用できるようになります。

ESモジュールを使用する場合の注意点

ブラウザでESモジュールを使うには、HTMLのscriptタグにtype="module"という属性を追加する必要があります。

<!DOCTYPE html>
<html>
<body>
  <script type="module" src="main.js"></script>
</body>
</html>

これがないとブラウザに表示できないため、注意しましょう。

まとめ

ブラウザに作ったJavaScriptが反映されていない!
という体験から、関数やクラスなどをモジュール化し、他のファイルで使えるようにすること、それをHTMLファイルの script タグで type 属性を追加することが、必要であることがわかったため、この記事にまとめさせていただきました。
もし、同じような状況にあった場合に参考にしていただけますと幸いです。

最後までお読みいただき、ありがとうございました。

参考URL

https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Modules

https://ics.media/entry/16511/

Discussion