Componentes Web, Lit y Santa 🎅

Rate this content
Bookmark

Comienza con los Componentes Web, que te permiten definir nuevos elementos HTML que funcionan en todas partes donde funciona el HTML regular. Esta charla se centrará en Lit, una suite de Google que te ayuda a crear Componentes Web con características que esperarías, como la vinculación de datos y definiciones declarativas. También se hablará de cómo los hemos utilizado para construir uno de los sitios más alegres de la web, el Rastreador de Santa de Google 🎅

FAQ

Santa Tracker es una aplicación que permite seguir a Santa durante la temporada navideña. El líder del proyecto ha estado involucrado en él durante cinco o seis años.

Los componentes web son una tecnología que permite a los desarrolladores crear sus propios elementos HTML personalizados, funcionando como elementos HTML regulares. Estos pueden incluir funcionalidades y estilos encapsulados, haciendo uso del shadow DOM para aislamiento y personalización.

Lit es una biblioteca muy opinada proporcionada por Google, diseñada para la creación de componentes web. Ofrece ventajas como la vinculación de datos y es ideal para empezar a escribir componentes web de manera eficiente.

Santa Tracker utiliza Web Components para gestionar la estructura y el diseño del sitio, mostrando nuevas tecnologías y admitiendo código heredado. También utiliza LitElement para muchos de sus componentes, facilitando el desarrollo y la gestión del sitio.

El shadow DOM es una parte de los componentes web que permite encapsular y aislar el HTML y los estilos dentro de un componente, evitando que los estilos se filtren y afecten a otros elementos del DOM global.

Los componentes web ofrecen encapsulación, reutilización de código y aislamiento de estilos, lo que permite a los desarrolladores crear elementos personalizados y reutilizables que se integran bien en cualquier proyecto web sin interferencias de estilo o comportamiento.

Sam Thorogood
Sam Thorogood
28 min
11 Jun, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Se presentan los Componentes Web y la biblioteca Lit, destacando su capacidad para crear elementos personalizados y replicar componentes integrados con funcionalidades diferentes. Se enfatiza el uso de HTML semántico y los beneficios de los Componentes Web en el desarrollo. Se discuten las características de Lit, como la vinculación de datos y el renderizado. Se muestra el Rastreador de Santa como ejemplo de uso de Componentes Web en juegos educativos. Se resalta la compatibilidad de los Componentes Web con otros frameworks y su versatilidad para crear pequeños widgets o aplicaciones grandes.

1. Introducción a los componentes web y la biblioteca Lit

Short description:

Hola, mi nombre es Sam y hoy estoy aquí para hablar sobre los componentes web, la biblioteca Lit y Santa Tracker. En primer lugar, vamos a hablar sobre los componentes web. Así que vamos a tener un poco de contexto sobre los elementos y las páginas. Los componentes web, fundamentalmente, nos permiten escribir nuestros propios elementos. Estos son ciudadanos de primera clase que funcionan como elementos HTML regulares. Los objetivos de esta charla son introducirte a los componentes web y sus partes, y aprender sobre Lit, una biblioteca de componentes web muy opinada que Google proporciona.

y Santa Tracker. Pero primero, un poco de contexto sobre mí. Tengo la suerte de ser el líder de Santa Tracker. Es algo que he estado haciendo durante cinco o seis años. Afortunadamente, no tengo que hacerlo todo el año, solo durante unos meses alrededor de la temporada navideña. De lo contrario, me volvería loco, solo para dejarlo claro. También trabajo en sitios de contenido como web.dev y developer.chrome.com.

Personalmente, ¿qué me gusta? Me gusta empujar los límites, hacer cosas extrañas en la web. Puedes leer mi blog si tienes curiosidad por saber más. Y también tengo algunas cosas que no me gustan. Me gusta construir sitios web de una manera muy rápida y creo que las grandes construcciones, durante el desarrollo, realmente te ralentizan. Me encantaría ver un proceso de desarrollo mucho más rápido y creo que muchas herramientas ahora ayudan a apoyar eso.

En primer lugar, vamos a hablar sobre los componentes web. Así que vamos a tener un poco de contexto sobre los elementos y las páginas. Ahora, todos sabemos que las páginas HTML están compuestas por diferentes elementos. Estos pueden ser elementos semánticos que en su mayoría solo afectan al estilo y también son importantes para cosas como lectores de pantalla, y también un poco de semántica para ti como desarrollador, cosas como encabezado y sección. Pero también pueden ser elementos que tienen funcionalidad, cosas como A y button, y elementos como diálogo y detalles, y versiones más avanzadas de esos que tienen un estado que cambia. Los componentes web, fundamentalmente, cuando se trata de eso, nos permiten escribir nuestros propios elementos. Estos son ciudadanos de primera clase que funcionan como elementos HTML regulares. Voy a hablar sobre un ejemplo de mis detalles, al que llegaré en breve.

Entonces, ¿cuáles son los objetivos de esta charla? Quiero que te introduzcas a los componentes web y sus partes. Esta es una charla bastante general. Quiero dejar eso claro. Pasaremos por alto algunas cosas más sutiles, que, con suerte, te señalaré en la dirección correcta para que puedas obtener más información. Quiero que aprendas sobre Lit, una biblioteca de componentes web muy opinada que Google proporciona, que es realmente el mejor lugar para comenzar a escribir componentes web. Y también estaría muy contento si abres Santa Tracker en otra pestaña y haces clic en diferentes partes y juegas algunos juegos e intentas descubrir qué juegos y qué partes del sitio están ejecutados con componentes web. Así que hablemos de los detalles. Los detalles son un elemento muy interesante que mencioné antes. Tiene muchas funcionalidades. Si no lo has visto antes en acción, lo que hace es mostrar el texto del resumen, que es la cosa de arriba aquí, y solo muestra la descripción en forma más larga cuando haces clic en ese resumen.

2. Creando un Componente Web Personalizado de Detalles

Short description:

Quiero escribir mis detalles como un componente web que se abre hacia arriba. Es un ejemplo poderoso de cómo los componentes web pueden reproducir un componente incorporado pero con una funcionalidad diferente. Al definir el HTML interno de la sombra y agregar comportamiento, podemos crear este elemento sin costo adicional de biblioteca. Es interoperable con navegadores modernos y fundamentalmente indistinguible del elemento de detalles regular. Los componentes web tienen acceso al ciclo de vida del elemento, lo que nos permite saber cuándo se crea, agrega o elimina un elemento de la página.

Tiene mucho sentido y es muy útil. Quiero escribir mis detalles. Ahora, esto será muy similar al elemento de detalles regular, pero con una diferencia clave. Así es como se verá como un componente web. No puede verse exactamente igual. Tenemos que usar esta cosa de ranura aquí, pero mencionaré cómo funciona más adelante.

Entonces, la diferencia fundamental de mis detalles en comparación con los detalles es que estos detalles deben abrirse hacia arriba. Esto puede que no sea lo más importante en la web, pero pensé que era un ejemplo bastante lindo para mostrar lo poderosos que son los componentes web, que puedo reproducir un componente incorporado, un pequeño widget lindo, pero hacer algo completamente diferente. Así que quiero explicar cómo funciona esto. Fundamentalmente, creamos esta clase aquí y luego definimos su HTML interno de algo llamado sombra, a lo que llegaré un poco más tarde. Creo un poco de código aquí. Luego, obtengo algunas referencias a algunos elementos dentro de esa sombra y agrego algo de comportamiento.

Ahora, este comportamiento es bastante estándar. Cuando hago clic en este elemento aquí, quiero que el otro contenido cambie de estado. Por lo tanto, voy a abrir y cerrar este elemento haciéndolo visible o no visible, y también voy a cambiar la representación de emoji según si el elemento está abierto o no. Hemos construido este pequeño elemento genial y la mejor parte para mí es que no tiene costo adicional de biblioteca. Obviamente, el elemento tiene un poco de código que debe ejecutarse, pero no te cuesta nada más. No hay biblioteca que adjuntar, descargar o incluir. Y todos los navegadores modernos, aproximadamente el 95% de todos los navegadores hoy en día, admiten esto de forma nativa. Esto es algo que puedes usar directamente. La siguiente mejor parte es que esto es simplemente una forma estándar de interoperabilidad. Resulta que mis detalles, si hacemos un poco más de trabajo para que sea un poco más pulido, serán fundamentalmente indistinguibles del elemento de detalles regular. Nada de lo que uses realmente debería importar si son mis detalles o detalles. Por supuesto, tiene una funcionalidad diferente, pero, ya sabes, se ve, se siente, sabe, hace cuac, cualquier metáfora que te guste. Exactamente igual que cualquier otra cosa. Estos elementos son como HTML. Y la razón por la que son como HTML es porque tenemos acceso a estos dos componentes básicos de los componentes web. En primer lugar, tenemos acceso al ciclo de vida del elemento. Sabemos cuándo se crea un elemento, eso está en el constructor. Sabemos cuándo se agrega o se elimina de la página.

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

Lo Bueno, Lo Malo, y Los Componentes Web
JSNation 2023JSNation 2023
29 min
Lo Bueno, Lo Malo, y Los Componentes Web
Top Content
No ha habido escasez de críticas justas e injustas hacia los Componentes Web de una amplia gama de personas que construyen para la web, incluyendo pero no limitado a los autores de Frameworks de JavaScript en supuesta competencia con la plataforma. En esta charla te mostraré cómo navegar y simplificar el multifacético paisaje de los componentes web, satisfaciendo las críticas comunes y mostrando cómo puedes Usar la Plataforma de manera más efectiva hoy en día.
Es hora de desfragmentar la web
React Day Berlin 2022React Day Berlin 2022
34 min
Es hora de desfragmentar la web
Top Content
A lo largo de los últimos años, el número de frameworks web disponibles para nosotros ha explotado. En cierto modo, la amplitud de elección es una clara victoria para nuestro ecosistema. Sin embargo, para muchos de nosotros, también viene con severas desventajas: - ¿Alguna vez has usado un componente de código abierto popular construido para el framework A, y deseaste que existiera en el framework B? ¿Qué tal una biblioteca de sistema de diseño? - ¿Tu empresa tiene frontends construidos en diferentes frameworks, y tus equipos web están frustrados por las horas perdidas necesarias para lograr un sistema de diseño consistente? - ¿Tu equipo construye SDKs para frameworks web, y debe reescribirlos manualmente para cada framework? La solución a estos 3 problemas existe hoy. Para entenderla completamente, primero debemos examinar los frameworks web de hoy, repensar cómo debería ser un componente, e introducir una nueva Representación Intermedia de nuestros componentes. Esto es lo que hemos hecho en Builder.io cuando creamos Mitosis, y estamos emocionados de compartirlo con todos.
Autoría de HTML en un Mundo JavaScript
React Summit US 2023React Summit US 2023
21 min
Autoría de HTML en un Mundo JavaScript
En esta charla, Tony muestra cómo un enfoque de autoría y HTML semántico primero para el trabajo de plantillas JSX conduce a componentes de interfaz de usuario más legibles, mantenibles y accesibles. Demuestra cómo pensar en implementar un prototipo de interfaz de usuario de una manera semántica, autoría de HTML antes de los visuales. Muestra cómo el marcado accesible mejora el rendimiento, reduce el tamaño del DOM, minimiza el tiempo dedicado a CSS y reduce la carga cognitiva no solo para los desarrolladores, sino también para todos nuestros usuarios, sin importar cómo consuman nuestros sitios y aplicaciones.
Aplicaciones Web Inmutables
JSNation 2022JSNation 2022
20 min
Aplicaciones Web Inmutables
Resolver las dependencias cuando están todas agrupadas es fácil. Resolver las dependencias cuando se cargan a través de etiquetas de script es mucho más desafiante. El objetivo de esta charla es explicar cómo Meltwater maneja la resolución de dependencias al construir aplicaciones nativas basadas en componentes web que dependen de paquetes publicados por muchos equipos diferentes.
¡Los componentes web son increíbles!
JSNation 2022JSNation 2022
10 min
¡Los componentes web son increíbles!
¿Alguna vez te has preguntado cómo al colocar "video" o "audio" en tu HTML obtienes un reproductor multimedia con controles incluidos? ¿O cómo, dependiendo del atributo de tipo, "input" puede ser un botón, un lugar para ingresar texto, seleccionar una fecha o archivo, selector de color y más? ¿Qué tal si pudieras crear tu propio elemento? La respuesta: ¡Componentes web! 🤯 En esta charla, veremos qué son los componentes web, cómo crear uno e incluirlo en una aplicación.
Hablemos de los Componentes Web
React Advanced Conference 2021React Advanced Conference 2021
32 min
Hablemos de los Componentes Web
Antes del surgimiento de algunos de los frameworks más populares (léase: React y Vue), existían los componentes web. Los Componentes Web toman una de las mejores partes de estos frameworks (componentes reutilizables) y los combinan con las mejores partes del desarrollo web (soporte nativo del navegador y no necesidad de configurar un proceso de compilación). Y por si eso no fuera suficiente, los componentes web te permiten usar las mismas funciones en cualquier framework.Si en este punto te estás preguntando "Si los componentes web son tan increíbles, ¿por qué no he oído hablar de ellos antes?", entonces estás de suerte porque eso es exactamente de lo que trata esta charla.En esta presentación, echaremos un vistazo a qué son los componentes web, por qué son geniales, por qué pueden ser un dolor de cabeza y cómo podemos utilizar los componentes web tanto como una herramienta independiente como junto con los frameworks.

Workshops on related topic

Despliega una aplicación de componentes web y configura un flujo de integración continua
DevOps.js Conf 2022DevOps.js Conf 2022
111 min
Despliega una aplicación de componentes web y configura un flujo de integración continua
Workshop
Philippe Ozil
Philippe Ozil
Únete a nosotros en un masterclass en el que desplegarás una aplicación Node.js simple construida con componentes web y configurarás un flujo de integración continua (CI). Aprenderás sobre el poder del Lightning Web Runtime (LWR) y las GitHub Actions.
Componentes Web en Acción
JSNation Live 2021JSNation Live 2021
184 min
Componentes Web en Acción
Workshop
Joren Broekema
Alex Korzhikov
2 authors
El masterclass amplía el conocimiento del lenguaje de programación JavaScript, revisa los patrones generales de diseño de software. Se centra en los estándares y tecnologías de los Componentes Web, como Lit-HTML y Lit-Element. También practicamos la escritura de Componentes Web tanto con JavaScript nativo como con Lit-Element. Al final, revisamos las herramientas clave para desarrollar una aplicación: open-wc.