Hablemos de los Componentes Web

Rate this content
Bookmark

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.

FAQ

Los componentes web son un conjunto de tecnologías que permiten crear elementos HTML reutilizables que ya están integrados en los navegadores, sin necesidad de instalaciones adicionales.

Las principales partes de los componentes web incluyen los elementos personalizados, el Shadow DOM y las plantillas HTML.

Los elementos personalizados son una API que permite definir nuevas etiquetas HTML y comportamientos, para crear tus propias etiquetas reutilizables en tus proyectos web.

El Shadow DOM es una funcionalidad que permite encapsular elementos, estilos y funciones para que no interfieran con el resto del DOM en una página, proporcionando aislamiento y control sobre los estilos.

Las plantillas HTML son usadas como marcadores de posición que no se muestran directamente en la página. Estas plantillas pueden contener contenido que se activa y se muestra mediante JavaScript cuando es necesario.

Los componentes web son nativos de los navegadores y no requieren librerías adicionales, lo que los hace ligeros y compatibles con múltiples frameworks, a diferencia de React que es una librería específica para construir interfaces de usuario.

Sí, los componentes web son compatibles con varios frameworks como Angular, Vue y React, aunque su integración puede variar, siendo especialmente óptima en Angular y Vue.

Jemima Abu
Jemima Abu
32 min
22 Oct, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Los Componentes Web son un conjunto de tecnologías que te permiten crear elementos HTML reutilizables, combinando la diversión de React con HTML regular. Los elementos personalizados y el DOM sombreado son características clave de los Componentes Web, que te permiten definir nuevos elementos, encapsular funcionalidad y estilos, e interactuar con un DOM separado. Las plantillas HTML sirven como marcadores de posición para el contenido que se renderizará más tarde en los componentes personalizados. Los elementos personalizados y las plantillas HTML son compatibles con múltiples frameworks y se pueden utilizar en React, Angular, Vue o cualquier otro framework.

Available in English: Let's talk about Web Components

1. Introducción a los Componentes Web

Short description:

Hablemos de los componentes web. Soy un desarrollador frontend autodidacta y un ingeniero de sistemas escolar de Lagos, Nigeria. Me gusta construir cosas con HTML y CSS. Cuando estaba aprendiendo React por primera vez, no entendía por qué las cosas eran como eran. Prefiero usar HTML. Los componentes web son un conjunto de tecnologías que te permiten crear elementos HTML reutilizables. Es como usar HTML regular, pero con toda la diversión de React. Los elementos personalizados son una API que te permite definir nuevos elementos y su comportamiento. El shadow DOM te permite encapsular elementos, funcionalidad y estilos.

Así que probablemente debería presentarme primero. Soy un desarrollador frontend autodidacta y un ingeniero de sistemas escolar de Lagos, Nigeria. Estoy lejos de casa, pero ahora vivo en Londres, así que no tanto. Y me puedes encontrar en línea en cualquier lugar como JemimaAbu. Así que eso es LinkedIn, Twitter, Medium. Hago que mi nombre de usuario sea fácil, para que no tengan que estresarse para stalkearme. Todo está ahí.

Muy bien. Así que empecemos. ¿Qué son los componentes web? Me gustaría empezar diciendo por qué quería dar esta charla. Me gusta construir cosas con HTML y CSS. No soy un gran fanático de JavaScript. Cuando estaba aprendiendo React por primera vez, no entendía por qué las cosas eran como eran. No entendía por qué tenía que usar set states para cambiar una propiedad de estado, pero luego no podía simplemente cambiarla como una variable. No tenía sentido para mí. Personalmente, prefiero usar HTML.

Lo que no me gusta de HTML es que si quiero crear seis bloques de lo mismo, tengo que copiar y pegar lo mismo muchas veces. Y eso es lo que me gusta de React. Y pensé, ¿hay alguna manera de tener la simplicidad de HTML con la reutilización de React? Y la respuesta fue los componentes web. Básicamente, los componentes web son un conjunto de tecnologías que te permiten crear elementos HTML reutilizables. Así que de entrada, ya están ahí en tu navegador. No necesitas hacer ninguna instalación. Es como usar HTML vanilla. ¿Así se llama? Es como usar HTML regular, pero con toda la diversión de React.

Y ¿cómo funciona? Primero, tenemos nuestros elementos personalizados. Los elementos personalizados son una API que te permite definir nuevos elementos y su comportamiento. Así que puedes crear tus propias etiquetas HTML para usar. Y luego tenemos el shadow DOM, que suena muy genial y me gusta. Lo cual te permite encapsular elementos, funcionalidad y estilos.

2. Plantillas HTML y Elementos Repetidos

Short description:

Esto es lo que te permite eliminar tus elementos personalizados del flujo regular de la página y tenerlos en un DOM diferente. Y finalmente tenemos las plantillas HTML. Así que iba a mostrar un poco de código para mostrar de qué estoy hablando. Esta es una plantilla de blog simple que creamos en HTML regular. Si estás usando HTML regular para esto, es solo copiar y pegar y cambiar el contenido. Primero vamos a ver cómo se ve en HTML regular. El HTML regular es simplemente pegar el div con el mismo contenido en todas partes. Y luego tenemos el método que suelo usar cuando intento repetir cosas. En mi página de portafolio, si intento repetir los sitios web que he creado, suelo crear una matriz con todo el contenido que necesito y luego lo renderizo en la página usando JavaScript vanilla.

Esto es lo que te permite eliminar tus elementos personalizados del flujo regular de la página y tenerlos en un DOM diferente, lo cual es divertido. Y finalmente tenemos las plantillas HTML, que son las etiquetas personalizadas que realmente estás renderizando en las páginas. Sí.

Así que iba a mostrar un poco de código para mostrar de qué estoy hablando. Esta es una plantilla de blog simple que creamos en HTML regular. Si estás usando HTML regular para esto, es solo copiar y pegar y cambiar el contenido. Así que veamos un poco de código, que es en lo que soy bueno. Muy bien.

Primero vamos a ver cómo se ve en HTML regular. Haz clic. Así que tenemos esto... Tenemos nuestro código aquí arriba. Y el HTML regular es simplemente pegar el div con el mismo contenido en todas partes. Voy a hacer zoom. Ahí vamos. Así que puedes ver que solo tienes el div de la publicación y se repite varias veces en toda la página. Porque eso es lo que hace HTML. No te da variedad en cómo decides codificar. Y luego tenemos el método que suelo usar cuando intento repetir cosas. En mi página de portafolio, si intento repetir los sitios web que he creado, porque uso HTML básico para construir mi página de portafolio, en lugar de tener que escribirlos todos al mismo tiempo y luego simplemente cambiar el contenido, suelo crear una matriz con todo el contenido que necesito y luego lo renderizo en la página usando JavaScript vanilla. Así que si vamos a hacer eso para esto... Es una barra de desplazamiento difícil. Si vamos a hacer eso para esto, se vería algo así. Así que iba a hacer codificación en vivo, pero luego me di cuenta de que eso es simplemente... No tengo el coraje suficiente para escribir código en vivo. A veces las cosas salen mal y me derrumbo, y no voy a hacer eso. Así que si estuvieras haciendo esto con JavaScript vanilla, sería algo como...

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.
Componentes Web, Lit y Santa 🎅
JSNation Live 2021JSNation Live 2021
28 min
Componentes Web, Lit y Santa 🎅
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 🎅
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.

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.