Javascriptモジュラープログラミング(3)require.jsの使い方と機能入門_基礎知識
このシリーズのパート 1 と 2 では、JavaScript モジュールのプロトタイプと理論的な概念を紹介しましたが、今回はそれらを実際に使用する方法を紹介します。
私は非常に人気のあるライブラリ require.js を使用しています。
1. require.js を使用する理由
初期の頃、すべての Javascript コードは 1 つのファイルに記述されており、この 1 つのファイルをロードするだけで十分でした。その後、コードがどんどん増え、1 つのファイルでは不十分になり、複数のファイルに分割して順番にロードする必要がありました。以下の Web ページのコードを見たことがある人も多いと思います。
< スクリプト src="4.js">
;<スクリプト src="5.js">
;<スクリプト src="6.js; ">
このコードは、複数の js ファイルを順番に読み込みます。
この書き方には大きな欠点があります。まず、ロード時にブラウザは Web ページのレンダリングを停止します。ロードされるファイルが増えると、Web ページの応答が失われる時間が長くなります。次に、js ファイル間の依存関係により、ロード順序が厳密に保証される必要があります。上記の例のように、1.js は 2.js の前に置く必要があり、依存関係が最も大きいモジュールを最後にロードする必要があります。依存関係が複雑になると、コードの記述とメンテナンスが困難になります。
require.js は、次の 2 つの問題を解決するために生まれました :

(1) Web ページの応答の損失を避けるために、js ファイルの非同期読み込みを実装します。 2) モジュール間の依存関係を管理して、コードの作成とメンテナンスを容易にします。
2. require.js の読み込み require.js を使用するための最初のステップは、公式 Web サイトから最新バージョンをダウンロードすることです。
ダウンロード後、jsサブディレクトリ配下に配置されロードできるものとします。
require.js をロードしたら、次のステップは独自のコードをロードすることです。独自のコード ファイルが main.js であり、これも js ディレクトリの下に配置されていると仮定します。次に、次のように記述します:
3. メインモジュールの書き方 前節の main.js を「メインモジュール」と呼びます。これは Web ページ全体のエントリーコードを意味します。これは C 言語の main() 関数に似ており、すべてのコードはここから実行を開始します。
main.jsの書き方を見てみましょう。
コードが他のモジュールに依存していない場合は、JavaScript コードを直接記述できます。
// main.js
ただし、この場合、require.js を使用する必要はありません。本当に一般的な状況は、メイン モジュールが他のモジュールに依存することです。この場合、AMD 仕様で定義されている require() 関数を使用する必要があります。
// main.js
require ([' moduleA', 'moduleB', 'moduleC'], function (moduleA, moduleB, moduleC){
// ここにコードがあります
});関数は 2 つのパラメータを受け入れます。最初のパラメータは配列であり、依存するモジュールを示します。上の例は ['moduleA', 'moduleB', 'moduleC'] です。つまり、メイン モジュールはこれら 3 つのモジュールに依存します。現在、この関数は上記で指定されたすべてのモジュールが正常にロードされた後に呼び出されます。ロードされたモジュールはパラメータとしてこの関数に渡されるため、これらのモジュールはコールバック関数内で使用できます。
以下では、実際的な例を見ていきます。
メインモジュールが jquery、アンダースコア、バックボーンの 3 つのモジュールに依存していると仮定すると、main.js は次のように記述できます:
require.js は、まず jQuery、アンダースコア、バックボーンをロードしてから、コールバック関数を実行します。メインモジュールのコードはコールバック関数内に記述されます。
前のセクションの最後の例では、メイン モジュールの依存モジュールは ['jquery'、'underscore'、'backbone'] です。デフォルトでは、require.js は、これら 3 つのモジュールが main.js と同じディレクトリにあり、ファイル名が jquery.js、underscore.js、backbone.js であると想定し、自動的にロードします。 require.config() メソッドを使用すると、モジュールの読み込み動作をカスタマイズできます。 require.config()はメインモジュール(main.js)の先頭に記述されます。パラメータはオブジェクトであり、このオブジェクトの paths 属性は各モジュールのロード パスを指定します。
"underscore": "underscore.min",
"backbone": "backbone.min"
}); 🎜>
上記のコードは、3 つのモジュールのファイル名をデフォルトで main.js と同じディレクトリ (js サブディレクトリ) に指定します。これらのモジュールが js/lib ディレクトリなどの他のディレクトリにある場合、モジュールを記述する方法は 2 つあります。 1 つはパスを 1 つずつ指定する方法です。
});
もう 1 つは、ベース ディレクトリ (baseUrl) を直接変更する方法です。
}
});
モジュールが別のホスト上にある場合は、次のように URL を直接指定することもできます:
require.js では、各モジュールが個別の js ファイルであることが必要です。この場合、複数のモジュールが読み込まれると、複数の HTTP リクエストが発行されるため、Web ページの読み込み速度に影響します。したがって、require.js には最適化ツールが用意されており、モジュールをデプロイした後、このツールを使用して複数のモジュールを 1 つのファイルにマージし、HTTP リクエストの数を減らすことができます。
5. AMD モジュールの書き方
require.js で読み込まれるモジュールは AMD 仕様を採用しています。つまり、モジュールは AMD の規定に従って作成する必要があります。
具体的には、モジュールは特定のdefine()関数を使用して定義する必要があります。モジュールが他のモジュールに依存していない場合は、define() 関数で直接定義できます。
数学モジュールを定義する math.js ファイルがあると仮定します。次に、 math.js は次のように書く必要があります:
// math.js
define(function (){
var add = function (x,y){
return x y;
};
return {
add: add
};
});
読み込み方法は次のとおりです:
// main.js
alert(math.add(1) ,1));
}) ;
Function foo(){
myLib.doSomething();
return {
return { foo : foo
}); require() 関数は上記のモジュールをロードします。myLib.js ファイルが最初にロードされます。
6. 非標準モジュールのロード
理論的には、require.js によってロードされるモジュールは、AMD 仕様に従って、define() 関数で定義されたモジュールである必要があります。しかし実際には、一部の一般的な関数ライブラリ (jQuery など) はすでに AMD 仕様に準拠していますが、さらに多くのライブラリは準拠していません。
答えは「はい」です。 このようなモジュールを require() でロードする前に、まず require.config() メソッドを使用してモジュールの特性の一部を定義する必要があります。 たとえば、アンダースコアとバックボーンの 2 つのライブラリは、AMD 仕様を使用して書かれていません。それらをロードする場合は、まずその特性を定義する必要があります。
コードをコピー
ボーン '
}
}
});
require.config() は、前述の paths 属性に加えて、特別に使用される shim 属性も持ちます。互換性のないモジュールを構成します。具体的には、各モジュールは、(1) 外部から呼び出されるモジュールの名前を示すエクスポート値 (出力変数名)、(2) モジュールの依存関係を示す deps 配列を定義する必要があります。
たとえば、jQuery プラグインは次のように定義できます。
コードは次のとおりです。
7. require.js プラグイン
require.js は、いくつかの特定の機能を実装するための一連のプラグインも提供します。
domready プラグインを使用すると、ページ DOM 構造がロードされた後にコールバック関数を実行できます。
コードをコピー
コードは次のとおりです。
テキスト プラグインと画像プラグインを使用すると、require.js でテキスト ファイルと画像ファイルを読み込むことができます。
define([
text!review .txt ',
'image!cat.jpg'
],
function(review,cat){
console.log(review)
document.body.appendChild(cat); ;
}
);
同様のプラグインには、json ファイルとマークダウン ファイルを読み込むために使用される json と mdown があります。
(終わり)

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

vue3+vite:src は、イメージとエラー レポートと解決策を動的にインポートするために require を使用します。vue3+vite は複数のイメージを動的にインポートします。vue3。TypeScript 開発を使用している場合、イメージを導入するために require のエラー メッセージが表示されます。requireisnotdefined は使用できません。 vue2 のような imgUrl:require(' .../assets/test.png') は、typescript が require をサポートしていないため、インポートされます。そのため、import が使用されます。解決方法は次のとおりです: awaitimport を使用します

Python は非常に強力なプログラミング言語であり、多くのプログラマーが主要なプログラミング言語として Python を選択しています。ただし、コード内で関数のネストが多すぎると、プログラムの保守と理解が困難になる可能性があります。この記事では、Python コードでの過剰な関数のネスト エラーを解決する方法を説明します。関数のネストの簡単な説明 関数のネストとは、関数の本体内で別の関数を定義するプロセスを指します。関数をネストすると、プログラムの構造がより明確になり、コードが読みやすく、保守しやすくなります。ただし、ネストされた関数が多すぎると、コード構造が過度に複雑になる可能性があります。

require の使用法: 1. モジュールの導入: 多くのプログラミング言語では、require は外部モジュールまたはライブラリを導入し、それらが提供する関数をプログラム内で使用できるようにするために使用されます。たとえば、Ruby では、require を使用してサードパーティのライブラリまたはモジュールをロードできます。 2. クラスまたはメソッドのインポート: 一部のプログラミング言語では、require を使用して特定のクラスまたはメソッドをインポートし、現在のファイルで使用できるようにします。 ; 3. 特定のタスクを実行する: 一部のプログラミング言語またはフレームワークでは、特定のタスクまたは関数を実行するために require が使用されます。

近年のGolangの発展により、徐々に世間に認知されるようになったプログラミング言語の一つです。その中でも、Golang は関数型プログラミングとモジュール型プログラミングにおいても大きな利点を持っています。この記事では、Golang 関数型プログラミングとモジュール型プログラミングの長所、短所、およびアプリケーション シナリオについて詳しく分析します。 Golang 関数型プログラミング 関数型プログラミングは、比較的最近のプログラミング パラダイムであり、関数がプログラミング言語の第一級市民であり、他の値と同様に渡したり操作したりできることを主に強調しています。関数型プログラミングの現れ

PHP ヘッダーの Fatalerror:require():Failedopeningrequired'data/tdk.php'(include_path='.;C:phppear') を解決する手順 PHP を使用して Web サイトやアプリケーションを開発する場合、さまざまなエラーが発生することがよくあります。一般的なエラーの 1 つは、「fatalerror:require():Failed」です。

近年、インターネット技術の急速な発展に伴い、PHP は効率的で強力かつ柔軟な Web プログラミング言語として、ますます多くの開発者に採用されています。ただし、サーバーサイド言語として、大規模なプロジェクトを扱う場合、PHP コードのメンテナンスと管理は大きな課題となります。この問題を解決するために、PHP 開発者は複雑なアプリケーションを構築するためのモジュール設計のアイデアを採用し始めました。この記事では、モジュラー設計のメリット、モジュラー設計の実装方法、モジュラー設計など、PHP でのモジュラー設計について詳しく紹介します。

PHP ヘッダーの FatalError:require():Failedopeningrequired'data/tdk.php' を解決する手順 PHP Web サイトを開発および保守するときに、さまざまなエラーや例外が頻繁に発生します。一般的なエラーの 1 つは、「FatalError:require():Failedopeningrequired'data/tdk.php'」です。

PHPにおけるrequireキーワードの役割と使い方を詳しく解説 PHP開発において、requireは非常によく使われるキーワードです。その機能は、現在のスクリプトで使用するために指定されたファイルをインクルードすることです。この記事ではrequireキーワードの機能と使い方を詳しく解説します。 1. require キーワードの役割 require キーワードは、ファイルの内容を現在のスクリプトに含めることができます。通常、ライブラリ ファイル、設定ファイルなどの必要な外部ファイルを含めるために使用されます。要求を使用する
