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 [モジュールの読み込み]