Requirejs-amd-modules
提供:Dev Guides
RequireJS-AMDモジュール
RequireJSのモジュールはスコープオブジェクトであり、グローバル名前空間では使用できません。 したがって、グローバル名前空間は汚染されません。 RequireJS構文を使用すると、依存関係の順序を追跡することを心配することなく、モジュールをより速くロードできます。 同じページに同じモジュールの複数のバージョンをロードできます。
モジュールの定義
モジュールは* define()*関数を使用して定義されます。モジュールのロードにも同じ関数が使用されます。
単純な名前/値のペア
モジュールが名前と値のペアの単なるコレクションである場合、次の構文を使用できます-
define({
state: "karnataka",
city: "bangalore"
});
関数を定義する
モジュールは、依存関係なしでフレームワークの関数を使用することもできます。 これは、次の構文を使用して行うことができます-
define(function () {
//Do setup work here
return {
state: "karnataka",
city: "bangalore"
}
});
依存関係を持つ関数の定義
モジュールに依存関係がある場合、最初の引数(依存関係名の配列)、2番目の引数(定義関数)、およびモジュールを定義する戻りオブジェクトの配置は、次の構文で示されます-
define(["./mnc", "./startup"],
function(mnc, startup) {
return {
state: "karnataka",
city: "bangalore",
addCompany: function() {
mnc.decrement(this);
startup.add(this);
}
}
}
);
モジュールを関数として定義する
モジュールがオブジェクトのみを返すことは必須ではありません。関数から有効な値を返すこともできます。 次の構文は、モジュールを関数として定義するために使用されます-
define(["./mnc", "./startup"],
function(mnc, startup) {
return function(title) {
return title ? (window.title = title) :
startup.storeName + ' ' + mnc.name;
}
}
);
名前を持つモジュールの定義
場合によっては、モジュールの名前を* define()*の最初の引数として含める必要があります。 これは、次の構文を使用して行うことができます-
define("js2/title",
["js1/mnc", "js1/startup"],
function(mnc, startup) {
//Define js2/title object in here.
}
);
リンク:/requirejs/requirejs_modules_loading [モジュールの読み込み]