JavaScriptのモジュール性を理解する方法

JavaScriptのモジュール性を理解する方法

1. ブラウザのサポート

JavaScript モジュールの使用は、インポートとエクスポートに依存します。インポートとエクスポートのブラウザサポートは、最新のブラウザバージョンではサポートされていますが、IE や古いバージョンのブラウザではサポートされていません。そのため、IE や古いバージョンのブラウザとの互換性を保ちたい場合は、基本的に使用できません。

エクスポートとインポートはペアになって連携して動作します。

JSのモジュール化は、さまざまなJSフレームワークを学ぶための前提条件です。

import および export ステートメントは、モジュール内の特定の機能を実装する変数または関数をインポート/エクスポートするために使用されます。クラスをインポート/エクスポートすることもできます。

2.エクスポートモジュールのエクスポート

デフォルトのエクスポート

モジュールにはデフォルトのエクスポートが 1 つしか存在できず、デフォルトのエクスポート変数も 1 つしか存在できず、中括弧 {} は使用できません。

構文はエクスポートデフォルト変数名です

モデル.js

関数Test1(){
    console.log("これはデフォルトのエクスポートです")
}
関数Test2(){
    console.log('これは名前付きエクスポートです')
}
デフォルトをエクスポートする Test1

バッチエクスポート

構文は export {変数名, 変数名...} です。

関数Test1(){
    console.log("これはデフォルトのエクスポートです")
}
関数Test2(){
    console.log('これは名前付きエクスポートです')
}
エクスポート {Test1, Test2}

3. モジュールをインポートする

デフォルトのインポート

メイン.js

「./model.js」からTest1をインポートします。
テスト1()

デフォルトのインポートの名前変更

メイン.js

import x from "./model.js" //xはデフォルトでエクスポートされたTest1です
x()

バッチインポート

メイン.js

"./model.js" から {Test1, Test2} をインポートします。
テスト1();
テスト2();

一括インポートの名前変更

asキーワードの後に​​新しい名前が続き、名前の変更を実装します。

メイン.js

"./model.js" から {Test1 を x1 として、Test2 を x2 として} をインポートします。
1 を 1 にする
2倍

エクスポート時にasキーワードを使用して名前を変更することもできます。

モデル.js

関数Test1(){
    console.log("これはデフォルトのエクスポートです")
}
関数Test2(){
    console.log('これは名前付きエクスポートです')
}
エクスポート {Test1 を x1 として、Test2 を x2 として}

アプリケーションモジュール

html

<script src="main.js"></script>

4. モジュールオブジェクトを作成する

オブジェクトを使用すると、asキーワードに基づいて名前の変更がさらに簡素化されます。

* を「./model.js」からモデルとしてインポートします。
モデル.x1();
モデル.x2();

5. 輸出入中継ステーション

複数のサブモジュールを親モジュールに結合し、親モジュールがどのサブモジュールをエクスポートするかを決定する場合があります。この親モジュール ファイルは、さまざまなモジュールを組み合わせるためのトランジット ステーションのようなものです。

構文は、モジュールパスからエクスポート{変数名}です。

現在のディレクトリ構造

ソース

インデックス.html

メイン.js

リダイレクト.js

モデル

モデル.js

モデル2.js

モデル.js

関数Test1(){
    console.log("これはサブモジュール1です")
}
エクスポート {Test1}

モデル2.js

関数Test2(){
    console.log('これはサブモジュール2です')
}
エクスポート {Test2}

リダイレクト.js

「./models/model.js」から{Test1}をエクスポートします。
「./models/model2.js」から{Test2}をエクスポートします。

メイン.js

* を「./redirection.js」からモデルとしてインポートします。
モデル.テスト1()
モデル.テスト2()

html

<script src="./main.js"></script>

6. モジュールの動的ロード

動的にロードされるモジュールは、すべてのモジュールを事前にロードせずにモジュールをインポートするために使用されます。必要に応じて import() を関数呼び出しとして使用し、そのパラメータをモジュールのパスに渡すと、promise が返されます。モジュールのロード結果を操作するために、Promise オブジェクトを使用します。

構文はimport(動的にロードされたモジュールパス)です。

ダイナミック

関数TestDy(){
    console.log("これは動的モジュールです")
}
デフォルトの TestDy をエクスポートする

メイン.js

document.querySelector('.load').onclick = function(){
    import('./dynamic.js').then((モデル)=>{
        モデル.default()
    })
}

以上がJavaScriptのモジュール化を理解する方法の詳細です。JavaScriptのモジュール化の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Node.js のモジュール性、npm パッケージ マネージャーの説明
  • NodeJSのモジュール性に関する詳細な説明
  • JSフロントエンドモジュール化のいくつかの仕様についての簡単な説明
  • Jsモジュール化の動作原理とソリューションの詳細な説明
  • モジュール管理を実現するための JavaScript でのエクスポートとインポートに関するチュートリアル
  • JavaScript のモジュール性の説明

<<:  MySQL でファイルデータをインポートする際の 1290 エラーの解決方法

>>:  Linux でログインタイムアウト後に非アクティブなユーザーを自動的にログアウトする

推薦する

Git サーバーを使用してデバッグ ブランチを表示し、修正する方法を 1 日 1 分で学習します。

デバッグブランチプロジェクトの通常の開発中に、以前にリリースされたバージョンにバグがある場合がありま...

タブ切り替えを実装するための HTML サンプル コード

タブ切り替えもプロジェクトではよく使われる技術です。一般的にタブ切り替えはjsやjqを使って実装され...

antd pro に基づく SMS 認証コード ログイン機能 (プロセス分析)

目次まとめ全体的なプロセスフロントエンドページコード検証コードとログイン サービスをリクエストする ...

HTMLの基礎を徹底解説(第1部)

1. WEBを理解するWeb ページは主にテキスト、画像、ハイパーリンクなどの要素で構成されていま...

ウェブページ要素の完全な分析

相対的な長さの単位それら説明: 相対的な長さの単位。現在のオブジェクト内のテキストのフォント サイズ...

ネイティブ JavaScript を使用して計算機のサンプル コードを開発する

計算機の主な機能は数値計算を実行することです。計算機機能の Web インスタンスを開発すると、js ...

CSS3はリストの無限スクロール/カルーセル効果を実現します

効果プレビューアイデア現在のリストを最後の項目までスクロールし、すぐに最初の項目に戻ります。問題1....

Bash スクリプトでの配列メソッドの作成と使用の概要

Bashで配列を定義するbash スクリプトで新しい配列を作成する方法は 2 つあります。 1 つ目...

Docker で onlyoffice をインストールして展開する詳細なプロセス

0. システム要件CPU I5-10400F以上メモリ 16 GB、32 GBのメモリが最適ハードド...

Linux で Bash コマンド プロンプトをカスタマイズする方法

序文ご存知のとおり、bash (Bourne-Gain Shell) は、ほとんどの Linux デ...

Docker クロスサーバー通信オーバーレイソリューション (パート 1) Consul 単一インスタンス

目次シナリオタスクアイデア分析するコンセプトと選択ちょっとしたテスト環境説明予防実践テスト引用シナリ...

JavaScript ウェブページ入門開発詳細説明

パート3: ❤バックエンドデータ受信を見落とす3つの方法❤ (おすすめ集)パート 2: Web フォ...

nginx アンチホットリンクおよびアンチクローラー設定の詳細な説明

新しい設定ファイルを作成します (たとえば、nginx インストール ディレクトリの下の conf ...

Linx awk入門チュートリアルの詳細な説明

Awk はテキスト ファイルを処理するためのアプリケーションであり、ほぼすべての Linux システ...

LDAP ユーザー認証を使用するように Linux を構成する方法

私は CentOS に実装された LDAP ユーザー管理を使用しています。これはインターネット上のほ...