jQuery UI Warum die Widget Factory verwenden

Ein jQuery-Plugin zu schreiben ist so einfach wie das Hinzufügen einer Methode zujQuery.prototype(normalerweise dargestellt als$.fn) eine Methode hinzuzufügen ist genauso einfachthis. Warum also existiert die Widget Factory?

In diesem Kapitel erklären wir die Vorteile der Widget Factory und lernen, wann und warum man sie verwendet.

Zustandslose vs. zustandsbehaftete Plugins

Die meisten jQuery-Plugins sind zustandslos; sie führen eine Aktion aus und damit ist ihre Aufgabe erledigt. Wenn Sie zum Beispiel.text( "hello" )verwenden, um den Text eines Elements festzulegen, gibt es keine Installationsphase, und das Ergebnis ist immer gleich. Bei dieser Art von Plugin wird einfach der Prototyp von jQuery erweitert.

Einige Plugins sind jedoch zustandsbehaftet; sie haben einen vollständigen Lebenszyklus, verwalten ihren Zustand und reagieren auf Änderungen. Diese Plugins erfordern eine beträchtliche Menge spezialisierten Code für Initialisierung und Zustandsverwaltung (und manchmal Zerstörung). Dies führte zu Vorlagen für die Erstellung zustandsbehafteter Plugins. Schlimmer noch, jeder Plugin-Autor verwaltet den Lebenszyklus und den Zustand des Plugins anders, was zu unterschiedlichen API-Stilen über Plugins hinweg führt. Die Widget Factory zielt darauf ab, diese Probleme zu lösen, indem sie die Vorlage entfernt und eine konsistente API für Plugins schafft.

Konsistente API

Die Widget Factory definiert, wie Widgets erstellt und zerstört, Optionen abgerufen und festgelegt, Methoden aufgerufen und auf Ereignisse gehört wird, die von Widgets ausgelöst werden. Wenn Sie die Widget Factory verwenden, um zustandsbehaftete Plugins zu erstellen, halten Sie automatisch definierte Standards ein, was es neuen Benutzern erleichtert, Ihr Plugin zu verwenden. Darüber hinaus kann die Widget Factory auch definierte Schnittstellen implementieren. Wenn Sie mit der von der Widget Factory bereitgestellten API nicht vertraut sind, sehen Sie sich bitte um.So verwenden Sie die Widget Factory。

Festlegen von Optionen bei der Initialisierung

Wenn Sie ein Plugin erstellen, das Optionen akzeptiert, sollten Sie für so viele Optionen wie möglich Standardwerte definieren. Führen Sie dann bei der Initialisierung die vom Benutzer bereitgestellten Optionen mit den Standardwerten zusammen. Sie können die Standardwerte auch offenlegen, damit Benutzer die Standardwerte ändern können. Ein gängiges Muster in jQuery-Plugins ist wie folgt:

$.fn.plugin = function( options ) {
    options = $.extend( {}, $.fn.plugin.defaults, options );
    // Plugin logic goes here.
};
 
$.fn.plugin.defaults = {
    param1: "foo",
    param2: "bar",
    param3: "baz"
};

Die Widget Factory bietet diese Funktionalität ebenfalls und verbessert sie. Nach der Verwendung der Widget Factory würde es so aussehen:

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