HTMX: Enhancing Web Development

Rate this content
Bookmark

Sí, usar htmx para construir una aplicación web significa que escribirás menos JavaScript en general para tu aplicación web. No, esto no hace que htmx sea anti-JavaScript. Aunque ciertamente hay entusiastas de htmx que odian JavaScript, no obstante, htmx puede verse desde un ángulo pro-JavaScript: al liberar a JavaScript de tener que ser todo para tu aplicación web, puedes centrarte en usarlo donde fue diseñado para ser utilizado. Y, al hacerlo, ¡redescubre la alegría de JavaScript!

This talk has been presented at JSNation US 2024, check out the latest edition of this JavaScript Conference.

Carson Gross
Carson Gross
29 min
18 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
HTMX es una biblioteca de front-end orientada a hipermedia que mejora HTML como hipermedia. Generaliza el concepto de controles de hipermedia en HTML, permitiendo que cualquier elemento se convierta en un control de hipermedia. HTMX proporciona atributos prácticos como HX swap y HX indicator. La demostración de búsqueda activa muestra el comportamiento dinámico que se puede lograr con HTMX. HTMX permite a los desarrolladores construir aplicaciones web sin escribir una tonelada de JavaScript. Funciona bien para aplicaciones web tradicionales, pero puede no ser adecuado para la funcionalidad offline o interacciones rápidas. HTMX se puede integrar con JSX y varias pilas de backend, y TypeScript se puede usar junto con HTMX.

1. Introducción a HTMX

Short description:

Voy a dar una charla llamada No en serio, HTMX es Pro JavaScript. Hoy de lo que voy a hablar es de HTMX, obviamente, para eso estás aquí. Y voy a dar algunas demostraciones de HTMX. HTMX es una biblioteca de front-end orientada a hipermedia que mejora HTML como hipermedia en términos de hipermedia. Se basa en el concepto de controles de hipermedia en HTML, como hipervínculos y formularios.

Muy bien, voy a dar una charla llamada No en serio, HTMX es Pro JavaScript. Por alguna razón, siento que la gente no me toma en serio. No sé cuál es la situación.

Así que sobre mí, mi nombre es Carson Gross. Trabajo en un montón de diferentes proyectos de código abierto. HTMX es probablemente el que has oído. También trabajo en algo llamado HyperScript, que es un lenguaje de scripting para la web. Idiomorph, que es un algoritmo de morphing, de hecho 37signals lo está usando en Rails ahora. Escribí un ensayo tonto sobre desarrollo de software llamado Grugbrain que puedes leer en grugbrain.dev. Y tengo un libro que puedes comprar si quieres o leer en línea gratis en hypermedia.systems.

Y hoy de lo que voy a hablar es de HTMX, obviamente, para eso estás aquí. Y voy a dar algunas demostraciones de HTMX. Y vamos a hablar un poco sobre la relación entre HTMX y JavaScript porque es un poco más incómoda que la relación entre, digamos, React y JavaScript.

Entonces, HTMX, ¿qué es? Bueno, es algo que llamo una biblioteca de front-end orientada a hipermedia. Y lo que eso significa es que mejora HTML como hipermedia en términos de hipermedia. Y eso es diferente estilísticamente a la mayoría de los frameworks o bibliotecas que la gente aquí estaría acostumbrada donde esos frameworks tienden a inclinarse hacia JavaScript. Así que simplemente toma una mirada diferente a las cosas desde, ya sabes, aborda el desarrollo web desde una perspectiva diferente. Y se basa en esta idea de lo que se llaman controles de hipermedia en HTML.

Y este es un concepto que no quiero decir que ha caído en tiempos difíciles pero no es tan interesante, no ha estado en la mente de los desarrolladores web por un tiempo desde que el enfoque estándar se ha convertido en aplicaciones de una sola página. Pero probablemente todos saben lo que es un control de hipermedia, incluso si nunca han pensado en el término antes porque el control de hipermedia canónico es un hipervínculo. En HTML esto se implementa como una etiqueta de anclaje. Así que aquí tenemos una etiqueta de anclaje en la pantalla frente a nosotros, una muy simple. Y esto permite lo que se llama enlace no lineal. Así que cuando se creó la hipermedia, se contrastó con los medios antiguos. Así que papel y PDFs y cosas así. Y lo que era único sobre la hipermedia es que podías saltar, podías elegir lo que querías hacer. Y esto, ya sabes, el hipervínculo obviamente es la mecánica de navegación fundamental de la World Wide Web. Hay otro control de hipermedia llamado el formulario. Y los formularios son más complicados. Puede que los hayas usado en tus aplicaciones.

2. HTMX y Controles de Hipermedia

Short description:

HTMX permite interacciones más sofisticadas con un servidor remoto, dando a los autores más control a través de formularios. Al observar de cerca un hipervínculo o una etiqueta de anclaje, podemos entender el concepto central de HTMX. Generaliza la idea de un control de hipermedia, que consiste en el disparador, el elemento, el verbo y la ubicación en el DOM. HTMX permite que cualquier elemento HTML se convierta en un control de hipermedia y emita varios tipos de solicitudes. El atributo HX trigger permite que cualquier evento impulse la solicitud, y el atributo HX target permite dirigir elementos específicos en el DOM, lo que se conoce como transclusión.

Y estos permiten a las personas expresar interacciones más sofisticadas con un servidor remoto. Así que actualizaciones y búsquedas y demás. Pero se da más control al autor con los formularios. Así que si quieres entender HTMX, creo que lo mejor que puedes hacer es mirar un, mirar de cerca un hipervínculo o una etiqueta de anclaje. Y si miras esta etiqueta de anclaje, de nuevo, un control de hipermedia muy simple, enlace muy simple. Lo que le está diciendo al navegador o al cliente de hipermedia es renderizar algún texto. Y luego, cuando un usuario hace clic en ese texto, quiero que emitas un get a un servidor remoto y luego reemplaces el contenido de toda la ventana de visualización con cualquier documento HTML que regrese. Lo que hace HTMX es que en realidad, simplemente, generaliza esa idea. Así que hay cuatro componentes en esa idea. Y esos cuatro componentes son el disparador, el elemento que está emitiendo la solicitud de la cosa que en realidad es un control de hipermedia, el verbo o acción que se está utilizando para hacer esa solicitud, y luego dónde y cómo se está colocando el contenido en el DOM. Y así, HTMX, el objetivo de HTMX es generalizar todas esas cosas basadas en este concepto central de controles de hipermedia ya presentes en HTML.

Así que así es como lo hacemos. Aquí hay un ejemplo de un botón de me gusta potenciado por HTMX. No es un gran botón, pero es mi botón de me gusta. Así que la forma en que funciona este botón de me gusta es que puedes ver que hemos puesto algunos atributos en él. Y esos atributos todos comienzan con HX. Ese es el prefijo que usa HTMX. Así que lo que esto está diciendo, el primer atributo es HX put, y luego hay una URL relativa después de él. Y lo que eso está diciendo es que cuando se interactúa con este elemento, quiero que hagas una solicitud a un servidor remoto, y este es el tipo de solicitud que quiero que hagas. Y así, hay un conjunto de atributos que todos corresponden a los varios verbos HTTP. Así que tenemos post, patch, delete, y demás. Y eso hace posible que cualquier elemento en un documento HTML se convierta en un control de hipermedia, y también puedes emitir cualquier tipo de solicitud, lo cual contrasta con los anclajes y formularios básicos en HTML donde realmente solo puedes emitir gets y posts, desafortunadamente. El siguiente atributo en él es HX trigger, y esto generaliza esa noción de qué evento impulsa la solicitud. Así que en lugar de solo clics o en el caso de envíos de formularios, ¿por qué no permitir que cualquier evento pueda desencadenar solicitudes? Y finalmente hay un atributo HX target, y puedes ver que toma un selector CSS. Está dirigiéndose a este elemento de salida. Lo creas o no, output es una etiqueta HTML legal que tiene el ID output. Y así, este HX target nos permite dirigirnos a cualquier elemento en el DOM en lugar de solo reemplazar toda la ventana de visualización. Así que el término técnico para esto, a veces voy a conferencias académicas, se llama transclusión. Así que esto generaliza la transclusión con HTMX.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
RedwoodJS: El marco de aplicación React Full-Stack de tus sueños
React Summit Remote Edition 2021React Summit Remote Edition 2021
43 min
RedwoodJS: El marco de aplicación React Full-Stack de tus sueños
Top Content
Redwood JS is a full stack React app framework that simplifies development and testing. It uses a directory structure to organize code and provides easy data fetching with cells. Redwood eliminates boilerplate and integrates Jest and Storybook. It supports pre-rendering and provides solutions for authentication and deployment. Redwood is a cross-client framework that allows for building web and mobile applications without duplicating work.

Workshops on related topic

Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
Featured WorkshopFree
Miško Hevery
Miško Hevery
Construir aplicaciones web instantáneas a gran escala ha sido elusivo. Los sitios del mundo real necesitan seguimiento, análisis y interfaces y interacciones de usuario complejas. Siempre comenzamos con las mejores intenciones pero terminamos con un sitio menos que ideal.
QwikCity es un nuevo meta-framework que te permite construir aplicaciones a gran escala con un rendimiento de inicio constante. Veremos cómo construir una aplicación QwikCity y qué la hace única. El masterclass te mostrará cómo configurar un proyecto QwikCity. Cómo funciona el enrutamiento con el diseño. La aplicación de demostración obtendrá datos y los presentará al usuario en un formulario editable. Y finalmente, cómo se puede utilizar la autenticación. Todas las partes básicas para cualquier aplicación a gran escala.
En el camino, también veremos qué hace que Qwik sea único y cómo la capacidad de reanudación permite un rendimiento de inicio constante sin importar la complejidad de la aplicación.
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)
Deja que la IA sea tu Documentación
JSNation 2024JSNation 2024
69 min
Deja que la IA sea tu Documentación
Workshop
Jesse Hall
Jesse Hall
Únete a nuestro masterclass dinámico para crear un portal de documentación impulsado por IA. Aprende a integrar ChatGPT de OpenAI con Next.js 14, Tailwind CSS y tecnología de vanguardia para ofrecer soluciones de código e resúmenes instantáneos. Esta sesión práctica te equipará con el conocimiento para revolucionar la forma en que los usuarios interactúan con la documentación, convirtiendo las búsquedas tediosas en descubrimientos eficientes e inteligentes.
Aspectos destacados:
- Experiencia práctica en la creación de un sitio de documentación impulsado por IA.- Comprensión de la integración de la IA en las experiencias de usuario.- Habilidades prácticas con las últimas tecnologías de desarrollo web.- Estrategias para implementar y mantener recursos de documentación inteligente.
Tabla de contenidos:- Introducción a la IA en la documentación- Configuración del entorno- Construcción de la estructura de documentación- Integración de ChatGPT para documentación interactiva
Accesibilidad web en aplicaciones JavaScript
React Summit 2022React Summit 2022
161 min
Accesibilidad web en aplicaciones JavaScript
Workshop
Sandrina Pereira
Sandrina Pereira
A menudo vemos que JavaScript daña la accesibilidad de un sitio web. En esta masterclass, aprenderás cómo evitar errores comunes y cómo utilizar JS a tu favor para mejorar la accesibilidad de tus aplicaciones web.
En esta masterclass exploraremos múltiples ejemplos del mundo real con problemas de accesibilidad, y aprenderás cómo hacer que funcionen para las personas que utilizan un mouse o un teclado. También aprenderás cómo se utilizan los lectores de pantalla, ¡y te mostraré que no hay razón para tener miedo de usar uno!
Únete a mí y déjame mostrarte cómo la accesibilidad no limita tus soluciones o habilidades. ¡Al contrario, las hace más inclusivas!
Al final, serás capaz de:- Comprender los principios de WCAG y cómo están organizados- Conocer casos comunes en los que JavaScript es esencial para la accesibilidad- Crear enlaces, botones y elementos conmutables inclusivos- Utilizar regiones en vivo para errores y estados de carga- Integrar la accesibilidad en el flujo de trabajo de tu equipo de inmediato- Darte cuenta de que crear sitios web accesibles no es tan difícil como parece ;)
Aprende Fastify Un Plugin a la Vez
Node Congress 2021Node Congress 2021
128 min
Aprende Fastify Un Plugin a la Vez
Workshop
Matteo Collina
Matteo Collina
Fastify es un marco de trabajo HTTP para Node.js que se enfoca en brindar una buena experiencia de desarrollo sin comprometer las métricas de rendimiento. Lo que hace especial a Fastify no son sus detalles técnicos, sino su comunidad, que está abierta a contribuciones de cualquier tipo. Parte de la fórmula secreta es la arquitectura de plugins de Fastify, que permite a los desarrolladores escribir más de cien plugins.Este masterclass práctico está estructurado en una serie de ejercicios que cubren desde lo básico, como "hola mundo", hasta cómo estructurar un proyecto, realizar acceso a bases de datos y autenticación.

https://github.com/nearform/the-fastify-workshop