RequireJS - AMD Modülleri

RequireJS'deki bir modül, kapsamlı bir nesnedir ve genel ad alanında kullanılamaz. Bu nedenle, küresel ad alanı kirlenmeyecektir. RequireJS sözdizimi, bağımlılıkların sırasını takip etme endişesi olmadan modülleri daha hızlı yüklemeye izin verir. Aynı modülün birden çok sürümünü aynı sayfaya yükleyebilirsiniz.

Modülleri Tanımlama

Modül kullanılarak tanımlanır define()işlev; aynı işlev modülü yüklemek için de kullanılır.

Basit Ad / Değer Çiftleri

Modül yalnızca bir ad ve değer çiftleri koleksiyonuysa, aşağıdaki sözdizimini kullanabilirsiniz -

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

Fonksiyonları Tanımlama

Bir modül, bağımlılıkları olmadan çerçeveler için bir işlev de kullanabilir. Bu, aşağıdaki sözdizimi kullanılarak yapılabilir -

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

Bağımlılıklarla İşlevleri Tanımlama

Modül bağımlılıklara sahipse, ilk bağımsız değişkenin (bağımlılık adları dizisi), ikinci bağımsız değişkenin (işlev tanımlayan) ve modülü tanımlayan dönüş nesnesinin yerleştirilmesi aşağıdaki sözdiziminde gösterilir -

define(["./mnc", "./startup"], 
   function(mnc, startup) {
        
      return {
         state: "karnataka",
         city: "bangalore",
      
         addCompany: function() {
            mnc.decrement(this);
            startup.add(this);
         }
      
      }
   }
);

Bir Modülü İşlev Olarak Tanımlama

Bir modülün yalnızca nesneleri döndürmesi zorunlu değildir, bir işlevden herhangi bir geçerli değer de döndürülebilir. Aşağıdaki sözdizimi, bir modülü işlev olarak tanımlamak için kullanılır -

define(["./mnc", "./startup"],
   function(mnc, startup) {
       
      return function(title) {
         return title ? (window.title = title) :
         startup.storeName + ' ' + mnc.name;
      }
      
   }
);

Adla Modül Tanımlama

Bazı durumlarda, modül için ilk argüman olarak bir isim eklemeniz gerekebilir. define(). Bu, aşağıdaki sözdizimi kullanılarak yapılabilir -

define("js2/title",
   ["js1/mnc", "js1/startup"],
   
   function(mnc, startup) {
      //Define js2/title object in here.
   }
   
);

Modül Yükleme