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.
}
);
Загрузка модуля