Frage

In Grails gibt es zwei Mechanismen für die Modularität in der Sicht Schichten. Vorlage und TagLib

Während ich meine eigene Grails App schreibe, ich bin vor oft die gleiche Frage, wenn ich brauche eine UI-Komponente schreiben: muss ich eine Vorlage verwenden oder eine TagLib

Nach der Suche im Internet, ich habe nicht viel Best Practices findet oder Faustregeln im Zusammenhang mit dieser Design-Entscheidung können, so dass Sie mir helfen und mir sagen:

  1. Was ist der Hauptunterschied zwischen den beiden Mechanismen?
  2. In welchen Szenarien, verwenden Sie eine TagLib statt einer Vorlage (und umgekehrt)?
War es hilfreich?

Lösung

Es gibt definitiv einige Überschneidungen, aber unten sind einige Dinge zu denken. Eine Möglichkeit, darüber nachzudenken, es ist, dass Vorlage ist wie ein Verfahren Ebene Wiederverwendung, während TagLibs bequemer sind für API-Level-Wiederverwendung.

  • Vorlagen sind groß, wenn Sie für die Anzeige Format etwas Bestimmtes haben. Zum Beispiel, wenn Sie ein Domain-Objekt in einer bestimmten Art und Weise angezeigt werden wan, in der Regel ist es einfacher, es in einer Vorlage zu tun, sind da Sie im Grunde nur das Schreiben von HTML mit einigen. Es ist wiederverwendbar, aber ich denke, seine Wiederverwertbarkeit in einem wenig begrenzt. D. h wenn Sie eine Vorlage haben, würden Sie es in mehreren Seiten verwenden, nicht in Hunderten von Seiten.

  • Auf der anderen Seite, Taglibs ist eine kleinere Einheit von Funktionalität, aber man Sie eher zu dem Einsatz in vielen Orten sind. Darin sind Sie wahrscheinlich zu verketten Zeichenfolgen, also, wenn Sie hundert Zeilen HTML zu erstellen suchen, sind sie weniger bequem. Ein wesentliches Merkmal Taglibs erlauben die Fähigkeit ist, einzuspritzen / interact mit Dienstleistungen. Zum Beispiel, wenn Sie ein Stück Code benötigen, dass Anrufe auf einen Authentifizierungsdienst und zeigt den aktuellen Benutzer, nur dass in einem TagLib tun können. Sie müssen sich keine Sorgen machen um nichts zu dem taglib in diesem Fall vorbei - taglib gehen und es heraus aus dem Dienst aus. Sie sind auch wahrscheinlich, dass in vielen Seiten zu verwenden, so dass es bequemer ist ein taglib zu haben, die Parameter nicht braucht.

  • Es gibt auch mehrere Arten von Taglibs, darunter auch solche, mit denen Sie über etwas in der iterieren Körper, haben bedingt, usw. - das sind nicht wirklich möglich, mit Vorlagen. Wie ich oben sagte, eine gut gemachte taglib Bibliothek kann verwendet werden, zu erstellen eine wiederverwendbare API, die Ihr APS macht Code besser lesbar. Innerhalb der gleichen * taglib.groovy können Sie mehrere Tag-Definitionen haben, so dass ein weiterer Unterschied ist - Sie können Gruppe sie alle in einmal Platz und Anruf von einem taglib anderen in.

Auch im Auge behalten, dass Sie aus dem Inneren einer taglib eine Vorlage aufrufen können, oder Sie können Taglibs withing Vorlagen aufrufen, so dass Sie je nach Bedarf mischen und zusammenbringen.

Hope Dies löscht es für dich ein bisschen, wenn auch wirklich viel das ist, was Konstrukt Code bequemer ist und wie oft sie wiederverwendet werden.

Andere Tipps

Was uns ...

Ein Codierer sollte bestimmte Objektpräsentationslogik in Vorlage sehen, nirgendwo sonst.

Wir verwenden Taglibs nur für isolierte Seitenelemente, die nicht-Business-Logik überhaupt. Eigentlich versuchen wir ihre Nutzung zu minimieren. Es ist zu einfach zu schreiben Business-Logik in einer Taglib

Vorlagen sind der herkömmliche Weg zu gehen; zum Beispiel, sie unterstützen Layouts

(btw, können sie einen dritten Mechanismus genannt werden)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top