RequireJS - AMD 模組



RequireJS 中的模組是一個作用域物件,不在全域性名稱空間中使用。因此,全域性名稱空間不會受到汙染。RequireJS 語法允許更快地載入模組,而無需擔心跟蹤依賴項的順序。您可以在同一頁面中載入同一模組的多個版本。

定義模組

使用 define() 函式定義模組;該函式還用於載入模組。

簡單的名稱/值對

如果模組只是一組名稱和值對,則可以使用以下語法 -

define({
   state: "karnataka",
   city: "bangalore"
});

定義函式

模組還可以對框架使用函式,而不具有依賴關係。這可以透過使用以下語法來完成 -

define(function () {
   
   //Do setup work here
   return {
      state: "karnataka",
      city: "bangalore"
   }
});

定義具有依賴項的函式

如果模組具有依賴項,則以下語法中顯示了第一個引數(依賴項名稱陣列)、第二個引數(定義函式)和定義模組的返回物件的位置 -

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.
   }
   
);

模組載入

廣告