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.

This talk has been presented at React Advanced 2021, check out the latest edition of this React Conference.

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
Web Components are a piece of reusable UI enabled by web standards and built into the web platform. They offer the potential for faster component initialization and less library overhead. Web Components can be created from scratch and utilized with existing component libraries. Shadow DOM and Declarative Shadow DOM provide benefits such as scoped CSS and server-rendered components. The tradeoff between not repeating oneself and achieving full server-side rendering support is discussed. User experience is deemed more important than developer experience.
Es hora de desfragmentar la web
React Day Berlin 2022React Day Berlin 2022
34 min
Es hora de desfragmentar la web
Top Content
Today's Talk introduces Mitosis, an open source project that solves the problem of building framework agnostic components. It supports JSX and Svelte syntax and outputs human-readable code for various web frameworks. Mitosis is already being used by enterprise customers and can be easily integrated with React, Svelte, and other frameworks. It saves time, allows for easy handling of framework version migrations, and enables efficient unit and integration testing.
Componentes Web, Lit y Santa 🎅
JSNation Live 2021JSNation Live 2021
28 min
Componentes Web, Lit y Santa 🎅
Web Components and the Lit library are introduced, highlighting their ability to create custom elements and replicate built-in components with different functionality. The use of semantic HTML and the benefits of web components in development are emphasized. The features of Lit, such as data binding and rendering, are discussed. The Santa Tracker is showcased as an example of web components being used in educational games. The compatibility of web components with other frameworks and their versatility in creating small widgets or large applications are highlighted.
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
This Talk by Tony Alicia focuses on authoring HTML in a JavaScript world. The speaker challenges developers to change their approach to building React components by starting with HTML first. By authoring HTML in a semantic way, readability and maintainability can be improved. Well-authored HTML provides better understanding of content and improves accessibility. It also has performance benefits by reducing DOM size. Investing time in HTML can save time and make applications more future-proof.
Aplicaciones Web Inmutables
JSNation 2022JSNation 2022
20 min
Aplicaciones Web Inmutables
Today's Talk discusses immutable web apps and their benefits, such as faster loading times and easy version tracking. The use of Universal Module Definition (UMD) style bundling allows for flexible dependency management and gradual upgrades. Tools like Webpack and Rollup provide ways to reference UMDs in bundles and automate dependency configuration. Arborist and YAML files help resolve dependency trees and handle conflicts, while the Orchard CLI tool automates dependency ordering. Internal and external dependencies can be initialized and managed effectively for optimal performance.
¡Los componentes web son increíbles!
JSNation 2022JSNation 2022
10 min
¡Los componentes web son increíbles!
Web components allow you to create your own HTML elements that can do anything you want, and they are supported by all modern browsers. Many companies, including YouTube and GitHub, use web components to enhance their websites. There are extensive tooling and libraries available for web component development. The Model Viewer Web Component enables the display of 3D models in Virtual and Augmented Reality without needing to know underlying technologies. Web components can be used with various frameworks and libraries, and there are resources available to help with compatibility.

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.