Así que eso es lo que hacen los enlaces, desde un punto de vista mecánico de hipermedia, eso es lo que hacen los enlaces. Entonces, lo que HTML, o disculpa, lo que HTMX hace es generalizar cada una de estas ideas. Así que hay un evento aquí. Hice clic en esta cosa. Así que HTMX generaliza eso y dice, está bien, cualquier evento puede desencadenar una solicitud HTTP. HTMX también hace que prácticamente cualquier elemento en HTML sea un potencial control de hipermedia. Así que en HTML por defecto, todo lo que tienes son enlaces y formularios. Con HTMX, ahora cualquier cosa puede ser un control de hipermedia. Te da control sobre la forma de la solicitud, ya sea que sea un get o un put post, pero también te da acceso a put y un montón de otros también. Y luego, quizás lo más importante, este enlace, cuando haces clic en enlaces o envías formularios en aplicaciones web tradicionales, tienes que reemplazar todo el viewport con lo que sea que regrese. Así que tengo que decir, puedes usar iframes para hacer reemplazos parciales, pero los iframes sufren de sus propios problemas.
Así que lo que HTMX hace es decir, está bien, vamos a generalizar eso para que cuando se haga la solicitud y el HTML regrese, hagamos que podamos poner ese HTML en cualquier parte de la página en lugar de tener que reemplazar todo el viewport. Así que vamos a repasar los atributos en HTMX que te permiten hacer estas cosas. Así que aquí hay un botón de me gusta que se ha hecho en HTMX, y vamos a repasar los atributos en él que están siendo utilizados por el autor usando HTMX para hacer que este botón de me gusta funcione. Así que lo primero que hay que mirar es este hxput. Y así HTMX tiene una serie de atributos, hxget, post, put, delete y patch, que te permiten decir efectivamente en esta cosa, en esto, sea lo que sea 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 efectivamente convertirse en un control de hipermedia. Puede emitir una solicitud de hipermedia a un servidor y obtener de vuelta HTML. Así que esa es la primera parte. La segunda parte es hxtrigger, y esto es lo que generaliza ese evento. Así que con los enlaces, tienes el evento como un clic. Cuando tienes formularios, el evento es un envío, y así con HTMX, puedes usar cualquier evento, así que mouseover o lo que sea. Aquí estamos usando clic, lo cual es bastante obvio para un botón. En este caso, podrías omitir esto, porque el desencadenante predeterminado para un botón va a ser clic, pero está aquí solo para que puedas ver esto 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.
Así que y luego el último gran paso para la generalización aquí es este hxtarget, y lo que esto dice es después de que emitas este put a esta URL y obtengas de vuelta algo de HTML, lo que quiero que hagas es que tomes el contenido de la respuesta, y quiero que lo pongas en la cosa con el ID output. Esto está usando un selector CSS, así que este es un selector CSS estándar que dice la cosa con el ID, eso es lo que significa este hash, output. Y abajo, tenemos una etiqueta de output con, efectivamente, un ID en ella llamado output, y así lo que va a pasar es que cuando un usuario haga clic en este botón, va a emitir un put a like en el clic, y luego va a obtener algo de contenido HTML de vuelta, y ese contenido va a ser insertado dentro de este output. Y esto resulta ser una generalización realmente importante de HTML. Realmente abre lo que puedes lograr con HTML.
Comments