Lo Bueno, Lo Malo, y Los Componentes Web

Spanish audio is available in the player settings
Rate this content
Bookmark

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.

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

FAQ

Los Web Components son piezas de interfaz de usuario reutilizables, habilitadas por los estándares web y están incorporados en la plataforma web, proporcionados gratuitamente por los navegadores web. Permiten inicializar componentes más rápido y funcionar con menos sobrecarga de biblioteca.

Para crear un Web Component, se define un nombre de etiqueta asociado a una clase mediante el registro de elementos personalizados. Cuando el navegador encuentra esta etiqueta en la página, el elemento será mejorado o 'hidratado' usando estándares web sin necesidad de existir en la carga inicial de la página.

Las principales ventajas de usar Web Components incluyen la reutilización de código, la portabilidad entre diferentes proyectos y la incorporación en la plataforma web que reduce la necesidad de bibliotecas adicionales. Además, son populares en sistemas de diseño debido a su facilidad de uso y mantenimiento.

Empresas como Microsoft, Google, IBM, Salesforce y GitHub utilizan Web Components. Por ejemplo, Microsoft ha construido MSN con Web Components y Google usa diseño material exportado a Web Components.

Shadow DOM es una técnica que permite encapsular el estilo y el marcado en Web Components, proporcionando aislamiento del estilo, lo que significa que los estilos definidos dentro del componente no afectan al resto de la página, y viceversa.

El Declarative Shadow DOM es una especificación que permite definir la estructura y el contenido del Shadow DOM de manera declarativa directamente en el HTML, facilitando la carga del componente sin depender exclusivamente de JavaScript.

El guion en los nombres de los Web Components es necesario para evitar conflictos con las etiquetas HTML existentes y futuras, ya que el W3C y WHATWG han declarado que no crearán etiquetas HTML que contengan guiones en sus nombres.

Zach Leatherman
Zach Leatherman
29 min
01 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Los Componentes Web son una pieza de UI reutilizable habilitada por los estándares web e incorporada en la plataforma web. Ofrecen el potencial para una inicialización de componentes más rápida y menos sobrecarga de biblioteca. Los Componentes Web pueden ser creados desde cero y utilizados con bibliotecas de componentes existentes. Shadow DOM y Declarative Shadow DOM proporcionan beneficios como CSS con alcance y componentes renderizados por el servidor. Se discute el equilibrio entre no repetirse y lograr un soporte completo de renderizado del lado del servidor. La experiencia del usuario se considera más importante que la experiencia del desarrollador.

1. Introducción a los Web Components

Short description:

Hoy vamos a hablar de los componentes web. Son buenos. Son malos. Esperemos que no sean feos. Aquí hay un ejemplo de un componente. Mira eso. Es un botón. Tenemos nuestro agradable JavaScript en la parte superior. Tenemos nuestro JSX en la parte inferior. Algunos de ustedes podrían estar familiarizados con el ejemplo de donde proviene. Es de Vercell.js. Existen un montón de abstracciones de componentes en este espacio. Pero hoy quiero hablarles sobre los Web Components.

¿Cómo está todo el mundo? ¿Tienen café? Bruce, supongo que somos viejos amigos. Genial. Es estupendo escuchar eso. Bueno, realmente no se podía decir por esa introducción, pero está bien. Bruce y yo nos llevamos muy bien.

Muy bien. Así que hoy vamos a hablar sobre web components. Son buenos. Son malos. Esperemos que no sean feos. Entonces, sí. Web components. Animations. Hay que amarlo. Web components, ¿verdad? No tengo que convencerlos a todos de que los componentes son buenos, ¿verdad? Componentes. Yay.

Muy bien. Aquí hay un ejemplo de un componente. Mira eso. Es un botón. ¡Woo-hoo! Gracias. Ese ha sido mi tiempo. Sí. Así que tenemos nuestro agradable JavaScript en la parte superior. Tenemos nuestro JSX en la parte inferior. Esto es genial. Y algunos de ustedes podrían estar familiarizados con el ejemplo de donde proviene. Es de Vercell.js.

Entonces, si miramos algunas de las otras bibliotecas de componentes que existen ahora, hay un montón de ellas, ¿verdad? Hay un montón de abstracciones de componentes que existen en este espacio. Pero hoy quiero hablarles sobre Web Components.

2. Web Components y Sistemas de Diseño

Short description:

Los Web Components son una pieza de UI reutilizable habilitada por los estándares web y construida en la plataforma web. Ofrecen la posibilidad de una inicialización de componentes más rápida y menos sobrecarga de biblioteca. Ejemplos de Web Components en uso incluyen MSN, diseño material y Adobe Photoshop en la web. Según las estadísticas web de Google Chrome, casi el 19 por ciento de las cargas de páginas en el navegador utilizan Web Components.

Entonces, un Web Component es una pieza de UI reutilizable, está habilitado por los web standards. Está incorporado en la plataforma web. Te lo proporcionan gratis los navegadores web. Y realmente el beneficio aquí es que tienes la posibilidad de inicializar tus componentes más rápido y funcionar con menos sobrecarga de biblioteca, lo cual es genial.

Como Bruce presentó, mi nombre es Zach. Blogueo en zackleet.com. Construí Eleventy, que es un generador de sitios estáticos. Y trabajo en Netlify. Y solo para convencerte de que los Web Components son algo que deberías tener en cuenta, te voy a mostrar algunos ejemplos. Hurra. Esto es presión de grupo. Esto es prueba social. Y después de estas cuatro o cinco diapositivas, todos estarán convencidos de que los Web Components son asombrosos. Así que vamos a ello.

Los Web Components, realmente el pan y la mantequilla de los Web Components en este momento son los sistemas de diseño. A la gente le encanta la portabilidad de los Web Components. Les encanta que estén incorporados en la plataforma. Y eso es realmente donde verás la mayoría de los ejemplos de ellos en la naturaleza. Microsoft construyó MSN con Web Components. VMware tiene un bonito sistema de diseño. Google tiene diseño material que se exporta a Web Components. IBM tiene uno, Salesforce. Mi favorito personal, Nord Health construido con 11-D es un muy buen ejemplo de eso. GitHub usa Web Components. Adobe realmente trajo Photoshop a la Web con Web Components usando Lit, lo cual creo que es genial. Y eso está usando Spectrum Web Components que es un envoltorio alrededor de Lit. ¿Son los Web Components una cosa? Mira todos estos logos, logos, logos, logos. Nos encantan los logos. ¿Eso realmente nos convence de que las cosas son buenas? Sí, creo que sí. Si vas a las estadísticas web de Google Chrome, tienen hasta abril de este año, medido que el 18, casi el 19 por ciento de las cargas de páginas en el navegador web de Google Chrome son propiedades que utilizan Web Components.

QnA

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

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.
Hablemos de los Componentes Web
React Advanced 2021React Advanced 2021
32 min
Hablemos de los Componentes Web
Web Components are a suite of technologies that allow you to create reusable HTML elements, combining the fun of React with regular HTML. Custom elements and the shadow DOM are key features of Web Components, allowing you to define new elements, encapsulate functionality and styles, and interact with a separate DOM. HTML templates serve as placeholders for content to be rendered later in custom components. Custom elements and HTML templates are cross-framework compatible and can be used in React, Angular, Vue, or any other framework.

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.