jQuery UI ¿Por qué usar la biblioteca de widgets (Widget Factory)?
Escribir un plugin de jQuery y ajQuery.prototype(normalmente mostrado como$.fn) añadir métodos es igual de simple, y debe seguir algunas reglas simples, como devolverthis. Entonces, ¿por qué existe la biblioteca de widgets (Widget Factory)?
En este capítulo, explicaremos los beneficios de la biblioteca de widgets (Widget Factory) y aprenderemos cuándo usarla y por qué usarla.
Plugins sin estado vs. plugins con estado
La mayoría de los plugins de jQuery son sin estado: ejecutan alguna acción y completan su tarea. Por ejemplo, si utiliza.text( "hello" )establecer el texto de un elemento, no hay fase de instalación y el resultado es el mismo. Para este tipo de plugins, solo extiende el prototipo de jQuery.
Sin embargo, algunos plugins tienen estado: tienen un ciclo de vida completo, mantienen estado y reaccionan a los cambios. Estos plugins requieren una gran cantidad de código especializado para la inicialización y la gestión del estado (a veces la destrucción). Esto llevó a la aparición de plantillas para crear plugins con estado. Peor aún, cada autor de plugins gestiona el ciclo de vida y el estado del plugin de manera diferente, lo que da como resultado diferentes estilos de API. La biblioteca de widgets (Widget Factory) tiene como objetivo resolver estos problemas: elimina las plantillas y crea una API consistente para los plugins.
API consistente
La biblioteca de widgets (Widget Factory) define cómo crear y destruir widgets, obtener y establecer opciones, llamar métodos y escuchar eventos disparados por los widgets. Al crear plugins con estado mediante la biblioteca de widgets (Widget Factory), se cumple automáticamente con los estándares definidos, lo que facilita que los nuevos usuarios usen su plugin. Además, la biblioteca de widgets (Widget Factory) también permite definir interfaces. Si aún no está familiarizado con la API proporcionada por la biblioteca de widgets (Widget Factory), consulteCómo usar la biblioteca de widgets (Widget Factory)。
Establecer opciones en la inicialización
Cuando cree un plugin que acepte opciones, debe definir defaults para tantas opciones como sea posible. Luego, en la inicialización, combine las opciones proporcionadas por el usuario con los defaults. También puede exponer los defaults para que los usuarios puedan cambiar los valores predeterminados. En los plugins de jQuery, un patrón común es el siguiente:
$.fn.plugin = function( options ) {
options = $.extend( {}, $.fn.plugin.defaults, options );
// Plugin logic goes here.
};
$.fn.plugin.defaults = {
param1: "foo",
param2: "bar",
param3: "baz"
};
La biblioteca de widgets (Widget Factory) también ofrece esta funcionalidad, y la ha mejorado. Después de usar la biblioteca de widgets (Widget Factory), se verá de la siguiente manera.
$.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.
}
});
Otras extensiones