RequireJSでは、require()Vs define()の使用の基本的な違いは何ですか?RequireJS:require()とdefine()の違い
require(['a'], function(a) {
// some code
});
// A.js
define(['b','c','d','e'], function() {
//some code
});
任意のユースケースは、非常に参考になる。..早期使用で私を悩ませ
RequireJSでは、require()Vs define()の使用の基本的な違いは何ですか?RequireJS:require()とdefine()の違い
require(['a'], function(a) {
// some code
});
// A.js
define(['b','c','d','e'], function() {
//some code
});
任意のユースケースは、非常に参考になる。..早期使用で私を悩ませ
つのコア差はdefine
がと呼ばれることはありません可能性があることを考え出すました。
ファイル1つのみがdefine
である限り、そのモジュールはそのファイル名で使用可能なものとして登録されます。しかし、define
モジュールは、それぞれがrequire
関数が要求するとロードされます。
定義:XXXが必要な場合は、まずこれらの他のものを読み込み、この関数の結果を返します。
必須:これらの他のものをロードしてから、この機能を実行します。 (no「の場合」)
例は:
// this is in company/welcomepage.js
define(['company/ui_library'],
function(uiLib) {
console.log('Welcome to {company}!');
}
);
それが唯一のJavascriptファイルの場合は、あなたがあなたのページを開くことができ、そして何もないでしょう:あなたは、これはあなたのページにファイルをJS含めるとしましょうコンソールのログには、スクリプトがユーザーを歓迎するように指示しています。しかし、変化のどこかのページで、または別のスクリプトであれば、あなたは次のように挿入していること:それはロード時に
require(['company/welcomepage'], function() {
// optionally insert some other page-initialization logic here
});
さて、ページがコンソールにウェルカムメッセージを入れます。
は、実際には、代わりに、その第二のものと、手動は<script>
タグとしてwelcomepage.jsを含むする必要はないであろう。それは要求を見てすぐにその場所からロードし、それが必要であることを認識します。
あなたは常にあなたのモジュール定義にdefineを使うと思います。あなたはそうするためにいくつかの味を持っています。あなたが定義した最初の引数として配列の依存関係を持つモジュールを定義することができます(あなたが投稿した例のように)。
それともSimplified CommonJS wrapperを使用することができ、このような何か:たぶん、あなたがサービスをロードした後、(定義を指定する()を必要と使用JSONP service dependencyフォーマット、と混ざってしまった
define(function (require) {
var otherModule = require('otherModule');
return function() {
return otherModule.operation();
};
});
)などサービスが応答すると、最終的にモジュールを定義するJSONPコールバック。
最後に、define()を使用してモジュールを定義し、require()を使用してそれらをロードします。
require
およびrequirejs
は同じである。
require === requirejs // true
require
は、定義されたモジュールをロードする方法です。例はlogger
モジュールをロードするために私が行うことができます:ここで
require(["logger"], function(logger){
logger.bla("S");
});
私はlogger
呼ばれ、すでに定義されたモジュールを指定して、require
を呼び出し、そのbla
メソッドを呼び出すことによって、それを使用しています。
define
は、モジュールを定義する方法です。私は何ができるlogger
モジュールを定義する例:ここでは
// logger.js
define(function(){
return {
bla: function(x){
alert(x);
}
}
});
を私はdefine
と呼ばれ、logger
モジュールを定義しました。このモジュールで私はbla
私は公開したい機能を返しました。
defineはexportと非常によく似ていますが、requireは他のモジュールを使用できるように他のモジュールに依存して使用することもあります。私はここでモジュール
// logger.js
define(["popup"], function(popup){
return {
bla: function(x){
popup.show(x);
}
}
});
ロガーモジュールI defined
を使用して、あなたにこの時間を同じlogger
モジュールをお見せしましょう、またpopup
と呼ばれる依存性を持つので、それがrequire
のように見えます。
は(定義)と(必要)dependencies.Thereをロードするために使用両方は、これら二つの方法の主な違いです。
その非常に単純な男
)は、(必要:方法は、即時の機能を実行するために使用されます。 define():メソッドは、複数の場所で使用するためのモジュールを定義するために使用されます(再利用)。
を定義し、我々はモジュールを宣言する方法であるAMDモジュールフォーマットに従って(CommonJSような他の利用可能なモジュール形式があり、ES2015、System.register、UMD)
反対に。
が必要です。は、 のようなモジュールローダーで利用可能です。RequireJs、SystemJS、ノードの組み込みモジュールローダー。これは、上記のモジュール形式の1つで定義されたモジュールを使用する場合に使用されます。
http://stackoverflow.com/questions/9507606/when-to-use-require-and-when-to-use-define –
を参照してください。これは重複していますが、ここでは例を挙げて説明します。 。 –