Ich baue eine ziemlich große Webanwendung und habe eine Handvoll Plugins mit dem klassischen Plugin-Muster erstellt. Einige von diesen überschreiten 50 Linien und behalten den Zustand bei. Ich habe kürzlich jQuery UI's widget factory entdeckt, und es scheint, wenn ich meine Plugins in diesen Stil konvertieren würde, wäre der Code leichter zu lesen und zu pflegen. Anders als Zeit und Mühe versuche ich festzustellen, ob es einen Nachteil gibt und sie umwandeln. Ich verwende jQuery UI bereits für einige andere Plugins.Sollte ich meine jQuery-Plugins konvertieren, um die Widget Factory von jQuery UI zu verwenden?
Antwort
Ich habe beschlossen, eines der komplexeren Stateful-Plugins zu konvertieren, um die jQuery-Widget-Factory zu verwenden. Es gab ein bisschen eine Lernkurve, ich glaube, dass die Vorteile die Arbeit gerechtfertigt haben. Während ich nicht Thema Rollenträger nutzen, sind hier einige der anderen Vorteile, die ich nützlich gefunden:
- Zustandsverwaltung für
- implizierten this.each()
- sauber Callback-Mechanismus
- einfache API Einstellung und übergeordnete Optionen
- visuell klare Unterscheidung zwischen öffentlichen und privaten Methoden
Natürlich können Sie alle erreichen diese mit dem traditionellen Plugin-Muster. Aber der Code erscheint meinem Auge viel sauberer und wird auf lange Sicht viel einfacher zu pflegen sein. Vielen Dank an Eric Hynds und seine MuliSelect Widget für die Bereitstellung von Quellcode für mich zu studieren und zu lernen, wie man die Widget Factory zu verwenden.
Sollte kein Problem sein.
Wenn Sie ohnehin schon von jQuery UI abhängig sind, gibt es keine Nachteile.
Verwenden Sie gute Framework-Funktionalität ist besser (die meiste Zeit) als die Implementierung Ihrer eigenen. Gut getestet, weniger Code und fördert oft besseres Design.
Wenn Sie nicht versuchen, die hinzugefügte Funktionalität der Widget-Fabrik anzuzapfen, gibt es keinen Grund, dies zu tun. Sie müssen wirklich auswerten, ob diese Art von Schalter andere Vorteile als mehr Arbeit bietet oder nicht.
Wenn es keine Vorteile gibt, Ihren Code zu ändern, tun Sie es nicht. Wie babiker in seinem Kommentar darauf hingewiesen hat, verbringt man besser Zeit mit der Anwendungsstruktur.
Sie haben einen tollen Punkt gemacht. Aber nach genauer Betrachtung der Widget-Factory bietet es dem Plug-in-Entwickler eine ganze Reihe von Funktionen, die letztendlich zu saubererem Code führen. – rhoeting
Weg durch diese Folien: http://ajpiano.com/widgetfactory/
Sie geben Ihnen einen fantastischen Überblick über die Widget-Fabrik, warum Sie es verwenden sollten, und wie.
- 1. Verwenden eines jquery-ui-Widget
- 2. Wie bekomme ich das 'Dialog'-Widget von jQueryUI, um die' ui-state-error'-Stile zu verwenden?
- 3. JQuery-UI-Widget-Verkettung: Nachdem ein Widget-Factory-Widget initialisiert wurde, wie ändere ich, was von der Initialisierungsfunktion zurückgegeben wird?
- 4. Welche Tools sollte ich verwenden, um meine Website zu erstellen?
- 5. jQuery UI - Konvertieren jQuery UI Datepicker zu UNIX-Zeit
- 6. jQuery UI Autocomplete-Widget Suchkonfiguration
- 7. jQuery UI Widget Erstellung von Scoping-Problemen
- 8. Erstellen Sie JQuery UI Widget von Grund auf
- 9. Welchen DNS-Typ sollte ich verwenden, um meine REST-Dienste über meine Domain verfügbar zu machen?
- 10. Wie sollte ich die RegExp verwenden, um meine Wünsche in Javascript zu bekommen?
- 11. Star Rating Widget für jQuery UI
- 12. Wie gestalte ich Nicht-Widget-Inhalte mit jQuery UI?
- 13. Welche Art von Schemacode sollte ich für meine Site verwenden?
- 14. Welche SRID sollte ich für meine Anwendung verwenden und wie?
- 15. jquery ui-Widget-Schaltfläche Inhalt Bug
- 16. Welches Entwurfsmuster sollte ich verwenden, um vorinitialisierte Objekte zu erhalten?
- 17. Konvertieren einer Rails 3-Anwendung, um Jquery zu verwenden
- 18. Wie man auswählt Event des Tab Widget von jquery ui?
- 19. Welche Struktur sollte ich verwenden, um diese Objekte zu speichern?
- 20. jQuery UI Tooltip Widget automatisch schließen
- 21. Sollte ich Zeitstempel oder Datum verwenden, um das Datum zu speichern, um die dynamische Zeitfunktion anzuzeigen?
- 22. Das Autocomplete-Widget von jQuery UI * eigentlich * automatisch vervollständigen
- 23. Sollte ich meine Zeichenfolge sha1, in Java oder PHP konvertieren?
- 24. Sollte ich für meine GUI-App "ganz" Async verwenden?
- 25. Aufruf von jQuery .remove() auf benutzerdefinierten UI-Widget verursacht Endlosschleife
- 26. Welche Methode sollte ich verwenden, um meine Java-GUI zu erstellen?
- 27. Welche Datenstruktur sollte ich verwenden, um meine eigene "BigInteger" -Klasse zu erstellen?
- 28. Welche Datenstruktur sollte ich verwenden, um mehrwertige Daten zu verarbeiten?
- 29. Ist es möglich, jQuery UI * Ohne * die Farben zu verwenden?
- 30. Was sollte ich verwenden, um Web Services App zu erstellen?
"Ich baue eine ziemlich große Web-Anwendung und habe eine Handvoll Plugins mit dem klassischen Plugin-Muster gebaut", sollten Sie sich darauf konzentrieren, die App nicht die Plugins zu bauen. – Babiker
Richtig, aber die Plugins werden zu wichtigen Teilen der Anwendung und erfordern in Zukunft möglicherweise Verbesserungen. – rhoeting