Entonces, eso es lo que hacen los enlaces, desde un punto de vista mecánico de hypermedia, eso es lo que hacen los enlaces. Entonces, lo que hace HTMX es generalizar cada una de estas ideas. Aquí hay un evento. Hice clic en esto. Entonces, HTMX generaliza eso y dice, está bien, cualquier evento puede activar una solicitud HTTP. HTMX también convierte prácticamente cualquier elemento en HTML en un control de hypermedia potencial. Por defecto, en HTML solo tienes enlaces y formularios. Con HTMX, ahora cualquier cosa puede ser un control de hypermedia. Te da control sobre la forma de la solicitud, ya sea un get o un put post, pero también te da acceso a put y a muchos otros. Y quizás lo más importante, este enlace, cuando haces clic en enlaces o envías formularios en aplicaciones web tradicionales, tienes que reemplazar toda la vista con lo que regresa. Así que tengo que decir, puedes usar iframes para hacer reemplazos parciales, pero los iframes tienen sus propios problemas.
Entonces, lo que hace HTMX es decir, está bien, generalicemos eso para que cuando se haga la solicitud y regrese el HTML, hagamos que podamos colocar ese HTML en cualquier lugar de la página en lugar de tener que reemplazar toda la vista. Así que repasemos los atributos en HTMX que te permiten hacer estas cosas. Aquí hay un botón de `Me gusta` que se ha hecho en HTMX, y repasemos los atributos que se están utilizando en él para que este botón de `Me gusta` funcione. Lo primero que hay que tener en cuenta es este hxput. HTMX tiene una serie de atributos, hxget, post, put, delete y patch, que te permiten decir efectivamente en este elemento, cuando ocurra el evento desencadenante y hablaremos de eso en un segundo, cuando ocurra un evento desencadenante, emite este tipo de solicitud. Así que ahora cualquier elemento en tu documento HTML puede convertirse efectivamente en un control de hypermedia. Puede emitir una solicitud de hypermedia a un servidor y obtener HTML a cambio. Esa es la primera parte. La segunda parte es hxtrigger, y esto es lo que generaliza ese evento. Con los enlaces, el evento es un clic. Cuando tienes formularios, el evento es un envío, y con HTMX, puedes usar cualquier evento, como mouseover o lo que sea. Aquí estamos usando clic, que es bastante obvio para un botón. En este caso, en realidad podrías omitir esto, porque el desencadenador predeterminado para un botón va a ser clic, pero está aquí solo para que puedas verlo de manera explícita. Así que tenemos esta capacidad de desencadenar una solicitud HTTP en cualquier cosa, no solo clics y envíos en enlaces y formularios respectivamente. Y luego el último paso importante para la generalización aquí es este hxtarget, y esto dice que después de emitir este put a esta URL y obtener algún HTML, quiero que tomes el contenido de la respuesta y lo coloques en el elemento con el ID output. Esto utiliza un selector CSS, por lo que es un selector CSS estándar que indica el elemento con el ID, eso es lo que significa este símbolo de almohadilla, output. Y debajo, tenemos una etiqueta de salida con, efectivamente, un ID llamado output, y así que lo que va a suceder es que cuando un usuario haga clic en este botón, se emitirá un put a like en el clic, y luego obtendrá algún contenido HTML, y ese contenido se insertará dentro de esta salida. Y esto resulta ser una generalización muy importante de HTML. Realmente abre las posibilidades de lo que se puede lograr con HTML.
Comments