jQuery UI Зачем использовать Widget Factory
Написание плагина jQuery так же просто, как добавление метода вjQuery.prototype(обычно обозначается как$.fn), добавление метода так же простоthis. Так почему же существует Widget Factory?
В этой главе мы объясним преимущества Widget Factory и узнаем, когда и почему её использовать.
Плагины без состояния против плагинов с состоянием
Большинство плагинов jQuery не имеют состояния; они выполняют некоторое действие, и на этом их задача завершается. Например, если вы используете.text( "hello" )чтобы задать текст элемента, нет фазы установки, и результат всегда один и тот же. Для этого типа плагинов он просто расширяет прототип jQuery.
Однако некоторые плагины имеют состояние; у них есть полный жизненный цикл, они поддерживают состояние и реагируют на изменения. Такие плагины требуют значительного объёма специализированного кода для инициализации и управления состоянием (а иногда и уничтожения). Это привело к появлению шаблонов для создания плагинов с состоянием. Хуже того, каждый автор плагина управляет жизненным циклом и состоянием плагина по-своему, что приводит к разным стилям API у плагинов. Цель Widget Factory — решить эти проблемы, убрав шаблон и создав согласованный API для плагинов.
Согласованный API
Фабрика виджетов определяет, как создавать и уничтожать виджеты, получать и задавать параметры, вызывать методы и прослушивать события, инициируемые виджетами. Используя фабрику виджетов для создания плагинов с состоянием, вы автоматически соблюдаете установленные стандарты, что упрощает новым пользователям работу с вашим плагином. Кроме того, фабрика виджетов также может реализовывать определённые интерфейсы. Если вы не знакомы с API, предоставляемым фабрикой виджетов, ознакомьтесь сКак использовать Widget Factory。
Установка параметров при инициализации
Когда вы создаёте плагин, принимающий параметры, следует определить значения по умолчанию для как можно большего числа параметров. Затем при инициализации объедините предоставленные пользователем параметры со значениями по умолчанию. Вы также можете сделать значения по умолчанию доступными, чтобы пользователи могли изменять значения по умолчанию. Распространённый шаблон в плагинах jQuery выглядит так:
$.fn.plugin = function( options ) {
options = $.extend( {}, $.fn.plugin.defaults, options );
// Plugin logic goes here.
};
$.fn.plugin.defaults = {
param1: "foo",
param2: "bar",
param3: "baz"
};
Фабрика виджетов также предоставляет эту функциональность и улучшает её. После использования фабрики виджетов это будет выглядеть так:
$.widget( "ns.plugin", {
// Default options.
options: {
param1: "foo",
param2: "bar",
param3: "baz"
},
_create: function() {
// Options are already merged and stored in this.options
// Plugin logic goes here.
}
});
Другие расширения