documentacion docs templates design grails gsp taglib

templates - docs - Grails: Plantillas frente a TagLibs.



grails documentation 2.4 4 (2)

Definitivamente hay cierta superposición, pero a continuación hay varias cosas en qué pensar. Una forma de pensarlo es que Template es como una reutilización a nivel de método, mientras que TagLibs es más conveniente para la reutilización a nivel de API.

  • Las plantillas son geniales para cuando tiene que formatear algo específico para mostrar. Por ejemplo, si desea mostrar un objeto de dominio de una manera específica, generalmente es más fácil hacerlo en una plantilla, ya que básicamente solo está escribiendo HTML con algunos. Es reutilizable, pero creo que su reutilización es un poco limitada. Es decir, si tiene una plantilla, la usaría en varias páginas, no en cientos de páginas.

  • Por otro lado, taglibs es una unidad más pequeña de funcionalidad, pero una que es más probable que uses en muchos lugares. En él es probable que concatenar cadenas, por lo que si está buscando crear cientos de líneas de HTML, son menos convenientes. Una característica clave que los taglibs permiten es la capacidad de inyectar / interactuar con los servicios. Por ejemplo, si necesita un trozo de código que active un servicio de autenticación y muestre el usuario actual, solo puede hacerlo en un TagLib. No tiene que preocuparse por pasar nada al taglib en este caso; taglib lo buscará y lo resolverá desde el servicio. También es probable que lo use en muchas páginas, por lo que es más conveniente tener un taglib que no necesita parámetros.

  • También hay varios tipos de taglibs, incluidos los que le permiten iterar sobre algo en el cuerpo, tienen condiciones, etc. - eso no es realmente posible con las plantillas. Como dije anteriormente, una biblioteca taglib bien elaborada se puede usar para crear una API reutilizable que hace que su código GSP sea más legible. Dentro de la misma * taglib.groovy puede tener varias definiciones de etiquetas, por lo que esa es otra diferencia: puede agruparlas todas en un solo lugar y llamar de un taglib a otro.

Además, tenga en cuenta que puede invocar una plantilla desde dentro de un taglib, o puede llamar a plantillas taglibs, para que pueda mezclar y combinar según sea necesario.

Espero que esto lo aclare un poco, aunque realmente mucho de esto es lo que construir es más conveniente para codificar y con qué frecuencia será reutilizado.

En Grails, hay dos mecanismos para la modularidad en las capas de vista: Template y TagLib .

Mientras escribo mi propia aplicación Grails, a menudo me enfrento a la misma pregunta cuando necesito escribir un componente UI: ¿necesito usar una plantilla o un TagLib?

Después de buscar en la web, no encontré muchas prácticas recomendadas o reglas generales sobre esta decisión de diseño, así que puede ayudarme y decirme:

  1. ¿Cuál es la principal diferencia entre los dos mecanismos?
  2. ¿En qué escenarios, usa un TagLib en lugar de una Plantilla (y viceversa)?

En cuanto a nosotros ...

Se supone que un codificador debe ver la lógica de presentación de objetos específicos en la plantilla, no en ningún otro lado.

Usamos taglibs solo para elementos de página aislados, no relacionados con la lógica de negocios. En realidad, tratamos de minimizar su uso: es muy fácil escribir lógica de negocios en un taglib.

Las plantillas son el camino convencional a seguir; por ejemplo, admiten diseños (por cierto, se los puede llamar un tercer mecanismo)