Grails: Templates vs TagLibs.
In Grails gibt es zwei Mechanismen, die für die Modularität in der Ansicht Ebenen: Vorlage und TagLib.
Während ich am schreiben meiner eigenen Grails-app ist, bin ich oft vor der gleichen Frage, als ich schreiben müssen, das von einer UI-Komponente: brauche ich, um eine Vorlage zu verwenden oder eine TagLib?
Nach der Suche im web, habe ich nicht viel best practices oder Faustregeln zu dieser design-Entscheidung, also können Sie helfen mir und sagen mir:
- Was ist der Hauptunterschied zwischen den beiden Mechanismen?
- In denen Szenarien, verwenden Sie eine TagLib statt eine Vorlage (und Umgekehrt) ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es sicherlich einige überschneidungen, aber unten sind einige Dinge zu denken. Eine Art, nachzudenken ist es, die Vorlage wie eine Methode-Ebene der Wiederverwendung, während TagLibs sind bequemer für API-Ebene wiederverwenden.
Vorlagen sind ideal für, wenn Sie haben, um etwas bestimmtes format für die Anzeige. Zum Beispiel, wenn Sie wan, um die Anzeige eines domain-Objekt in einer bestimmten Weise, in der Regel ist es einfacher, es zu tun in einer Vorlage, da Sie im Grunde nur HTML schreiben mit einigen . Es ist wiederverwendbar, aber ich denke seine Wiederverwendbarkeit ein wenig begrenzt. I. e. wenn Sie eine Vorlage, die Sie verwenden würden, es in mehrere Seiten, nicht in Hunderten von Seiten.
Auf der anderen Seite, taglibs ist eine kleinere Einheit von Funktionalität, aber Sie sind eher zu verwenden, in vielen Orten. In ihm sind Sie wahrscheinlich zu verketten von strings, so dass, wenn Sie schauen, um erstellen Sie eine hundert Zeilen HTML, sind Sie weniger bequem. Ein wesentliches Merkmal taglibs ermöglichen, ist die Möglichkeit zum einfügen von /mit Diensten interagieren. Zum Beispiel, wenn Sie ein Stück code, der ruft einen Authentifizierungs-service und zeigt den aktuellen Benutzer können Sie nur tun, in einer TagLib. Sie müssen nicht zu kümmern, vorbei, nichts, um die taglib in diesem Fall - taglib gehen und es herausfinden aus dem Dienst. Sie sind wahrscheinlich zu verwenden, die in vielen Seiten, so ist es bequemer zu haben, eine taglib, der keine Parameter.
Gibt es auch mehrere Arten von
taglibs, darunter auch solche, die es ermöglichen,
Sie Durchlaufen etwas in der
Körper, bedingte, etc - das ist
nicht wirklich möglich mit Vorlagen.
Wie ich oben sagte, eine gut gestaltete
taglib-Bibliothek verwendet werden, zu erstellen
eine wieder verwendbare API, die macht Ihre Aps
den code besser lesbar. Innerhalb der gleichen *taglib.groovy können Sie mehrere tag-Definitionen, also das ist ein weiterer Unterschied - Sie können Sie alle zu einer Gruppe, in einmal Platz, und rufen Sie aus einer taglib in einem anderen.
Beachten Sie auch, dass Sie rufen Sie eine Vorlage aus dem inneren einer taglib, oder rufen Sie taglibs innerhalb der Vorlagen, so können Sie mischen und anzupassen, wie gebraucht.
Hoffe, das klärt es für Sie ein wenig, obwohl wirklich eine Menge dieses ist, was konstruieren ist bequemer, um code und wie oft Sie wiederverwendet werden kann.
Als für uns...
Einen coder soll, um bestimmte Objekt-Präsentations-Logik in der Vorlage, nicht irgendwo anders.
Verwenden wir taglibs nur für isolierte Elemente der Seite, die nicht mit business-Logik überhaupt. Eigentlich versuchen wir zu minimieren, Ihre Verwendung: es ist zu einfach zu schreiben, business-Logik in einer taglib.
Vorlagen sind den konventionellen Weg zu gehen; zum Beispiel, Sie unterstützen die Layouts (btw, Sie können benannt werden, ein Dritter Mechanismus)