A Prueba de Futuro Tu UI: Construyendo Con Web Components

Rate this content
Bookmark

¿Te encantan los estándares pero odias el DX de los web components? Yo también.

Como un escéptico reformado de los Web Components debido a mis preocupaciones de DX, me encontré con un desafío interesante en SuperTokens: crear una biblioteca de UI que soporte todos los frameworks y siga siendo a prueba de futuro. Después de investigar un poco, descubrí que SolidJS compila a Web Components, ofreciendo una experiencia de desarrollador familiar, similar a React, exactamente lo que necesitaba para convertirme en un creyente. Después de un par de rondas de experimentación, me enamoré de los web components.

Esta charla compartirá ideas de nuestro viaje hacia la adopción de Web Components para nuestra biblioteca de UI de autenticación de próxima generación en SuperTokens y por qué los web components son una gran idea que llegó para quedarse.

This talk has been presented at React Day Berlin 2024, check out the latest edition of this React Conference.

Darko Bozhinovski
Darko Bozhinovski
27 min
16 Dec, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hoy, Darko discute el uso de web components para hacer que las UIs sean a prueba de futuro y su compatibilidad con múltiples frameworks. Aborda los desafíos de los web components e introduce la herramienta Solid Element para una mejor experiencia de desarrollador. La demostración muestra el uso de props y slots en web components y explora el manejo de eventos. Darko también demuestra cómo integrar web components con React. Enfatiza que los web components no son una solución mágica, pero son valiosos para casos de uso específicos y pueden ser reemplazados con frameworks. Destaca la utilidad de los web components para sistemas de diseño y proyectos como SuperTokens. Los web components también son adecuados para widgets y componentes hoja.

1. Futureproofing UI with Web Components

Short description:

Hoy, voy a hablar sobre cómo preparar tu UI para el futuro usando web components. Mi nombre es Darko. Me encanta Linux. Actualmente estoy haciendo el DERL para SuperTokens, la empresa de autenticación de código abierto. Esto comenzó como un experimento de I+D en mi trabajo en SuperTokens. Los Web Components son la herramienta perfecta para soportar múltiples frameworks de UI. El experimento fue un éxito y es posible que publiquemos una biblioteca basada en él. SolidJS ha sido una de las mejores cosas para la web en los últimos años.

Hoy, voy a hablar sobre cómo preparar tu UI para el futuro usando web components. Ahora, mi charla está algo relacionada con un reciente drama en Twitter, pero prometo que es anterior a ese drama y realmente no estaba buscando provocar nada con esto. Y otra confesión, el título es un poco un anzuelo, pero probablemente estaremos de acuerdo en que algo como, y cito, teníamos un caso de uso específico mejor resuelto con web components para hacer nuestro material a prueba de futuro, bueno, eso es un poco largo, ¿verdad? Así que vamos con este en su lugar.

Mi nombre es Darko. Me encanta Linux. Soy un nerd de Linux en toda regla. Me encanta todo lo abierto. Código abierto, la web abierta, estándares y demás. Actualmente estoy haciendo el DERL para SuperTokens, la empresa de autenticación de código abierto, échale un vistazo. Y estoy escribiendo en Darko.io. Ahora estoy en la mayoría de las redes sociales, si quieres seguirme a mí y a mi trabajo. Y también estoy en BlueSky porque BlueSky es increíble.

Para darte un poco de contexto sobre por qué comencé a hacer esto en primer lugar. Ahora, esto comenzó como un viaje y un experimento de I+D en mi trabajo en SuperTokens. Teníamos una pregunta frente a nosotros. ¿Cómo soportas, con una biblioteca de UI, todos los frameworks de UI que existen? Bueno, puedes responder a esa pregunta de una de dos maneras, generalmente. Una de ellas es emplear un ejército de ingenieros que te permita soportar Angular, React, Vue, Svelte, Solid y el resto de ellos. Hay muchos. O puedes optar por algo como Web Components. Ahora, no me malinterpretes. Los Web Components son una especie de compromiso en muchos sentidos. Pero dado el problema adecuado, bueno, son la herramienta perfecta para ello. Resulta que este experimento terminó siendo un éxito. Y veremos por qué terminó siendo un éxito. Es posible que publiquemos una biblioteca relacionada con UI, relacionada con autenticación, basada en este experimento.

Un poco de historia relacionada con el drama de Twitter que mencioné antes. Ahora, no me malinterpretes. Respeto completamente a Ryan y su trabajo. Y me encanta todo lo relacionado con Solid. Creo firmemente que SolidJS ha sido una de las mejores cosas que le ha pasado a la web en los últimos años.

2. Understanding Web Components

Short description:

Contrastando el título del blog de Ryan con mi presentación, estoy de acuerdo con la mayoría de lo que escribió. El drama de Twitter en torno a los Web Components reveló opiniones polarizadas. Sin embargo, hay un punto medio, y tanto las personas de frameworks como las personas de estándares tienen problemas válidos. Los autores que no son de frameworks y las personas que no son de estándares también tienen una perspectiva. Los Web Components son como etiquetas personalizadas de bricolaje que se pueden distribuir de varias maneras y funcionan a través de frameworks. Son un estándar y se pueden categorizar en tres cosas temáticas.

Pero si contrastas este título, Web Components are not the future, que proviene del blog de Ryan con el título de mi presentación que es Future-proof your UI building with Web Components, obtienes un contraste. Realmente no va en la misma dirección. Y francamente solo estaba tratando de ayudar con el título aquí. Pero dejando de lado su título, estoy de acuerdo con la mayoría de lo que escribió allí. Así que ten eso en cuenta mientras avanzamos en esta presentación.

Lo interesante que surgió de este título fue como este drama de Twitter. Y ves como esta fenomenal representación artística usando mis fenomenales habilidades artísticas. Bueno, de un lado tenemos a las personas de frameworks que decían ¡Web Components apestan! Como que no nos gustan. Y las personas de estándares del otro lado decían Web Components all the things porque como razones. Sabes, hay muchas razones para hacer eso. Y está el resto de nosotros como refiriéndose al meme del campesino ahí abajo. Pero sabes que algunos de nosotros usamos ambos. Y como si estás involucrado en un drama de Twitter te hace sentir un poco raro digamos porque los dramas de Twitter tienden a ser muy polarizantes. Ignorando que hey hay un punto medio aquí. Sabes que puedes usar ambas herramientas adecuadas para el trabajo adecuado y todo eso. Así que desde el punto de vista de los autores que no son de frameworks y las personas que no son de estándares, ese es como el punto de vista del que estoy hablando. Me di cuenta de que los problemas de las personas de frameworks son reales y los problemas de las personas de estándares son reales pero estadísticamente hablando no son el tipo de problema más común. Así que solo ten eso en cuenta durante la presentación.

Así que bueno, suficiente drama. Vamos a lo que realmente son los Web Components. Entonces, en cierto sentido, puedes considerarlos etiquetas personalizadas de bricolaje. Tener tu propia etiqueta HTML para cualquier caso de uso que puedas imaginar. Se pueden distribuir a través de etiquetas de script, a través de declaraciones de importación, a través de todas las formas regulares en que puedes importar cualquier cosa en una página web, aplicación web. Estos funcionan a través de frameworks. En su mayoría. React no los estaba.. no los estaba soportando completamente hasta la 19. La 19 los soporta muy bien. Así que como que puedes usarlos prácticamente en cualquier lugar en realidad. Así que son un estándar como hemos establecido y pero bajo el capó puedes dividirlos en como tres cosas temáticas en general.

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.
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.
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.
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.