Fuera con sus cabezas: El auge de los componentes sin cabeza

Rate this content
Bookmark

¿No estás cansado de repetirte? ¿Cansado de repetir el mismo código una y otra vez en tus proyectos de React? En esta charla, descubriremos el poder de los componentes sin cabeza, un patrón de diseño que separa la lógica de la capa de presentación, permitiéndote crear componentes de IU reutilizables y flexibles.
Exploraremos cómo los componentes sin cabeza pueden simplificar tu proceso de desarrollo, ahorrándote tiempo y esfuerzo. Examinaremos bibliotecas populares de componentes sin cabeza y proporcionaremos consejos para integrarlas en tus proyectos. Ya seas un principiante o un desarrollador experimentado, únete a nosotros para descubrir cómo los componentes sin cabeza pueden ayudarte a agilizar tu desarrollo de React y crear interfaces de usuario personalizables y de alta calidad.

FAQ

Los Componentes Headless son aquellos que no imponen una estructura visual propia, ofreciendo una marca muy básica diseñada para ser sobrescrita. Son útiles porque permiten una gran personalización y separación de la vista y el comportamiento, facilitando la implementación de lógica empresarial sin interferencias estilísticas.

Omri menciona varias bibliotecas de componentes headless como Radix, React ARIA y React Table. Estas bibliotecas ofrecen diferentes enfoques y niveles de complejidad para adaptarse a diversos requisitos de desarrollo.

Kodaks es un IDE de Wix que permite editar visualmente los componentes React de forma aislada, facilitando una forma efectiva y eficiente de modificar y personalizar componentes. Además, es gratuito y está en versión beta abierta desde Navidad.

Puedes seguir el desarrollo de Kodaks y obtener más información a través del enlace de GitHub proporcionado por Omri en su charla.

Omri identifica el 'muro de personalización' como un problema con las bibliotecas de componentes convencionales. Este problema surge cuando los estilos y comportamientos predeterminados de la biblioteca entran en conflicto con los requisitos específicos de personalización tardíos en el desarrollo del proyecto.

Omri sugiere utilizar componentes headless, que permiten una personalización completa al no imponer estilos o estructuras predeterminadas, dando al desarrollador control total sobre la apariencia y funcionalidad del componente.

Kodaks es una empresa parte de Wix que desarrolla herramientas para programadores, incluyendo un IDE que facilita la edición de componentes React. Kodaks apoya la implementación de componentes headless al permitir una edición visual y aislada, optimizando así el proceso de desarrollo.

Omry Nachman
Omry Nachman
25 min
02 Jun, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Los componentes sin cabeza son eficientes para el desarrollo de aplicaciones, pero hay mucho trabajo involucrado, especialmente para los menús. La barrera de personalización es un problema con las bibliotecas de componentes, pero se puede resolver a través de la ingeniería inversa y el diseño. Los componentes sin cabeza no ofrecen ninguna marca o marca básica que se pueda sobrescribir, lo que proporciona flexibilidad en el código y calidad de diseño. Radix y React ARIA son bibliotecas de componentes recomendadas con diferentes APIs. La experiencia de Kodaks con los componentes sin cabeza destaca la capacidad de mezclar y combinar fácilmente y el potencial de vacíos en el mercado en el espacio sin cabeza. Radix es una opción popular para los componentes sin cabeza debido a su API bien documentada y fácil de usar. Los componentes sin cabeza ayudan en las pruebas, la distribución de sistemas de diseño y la accesibilidad. MUI es una biblioteca autoconsistente y rica, mientras que Radix se centra en la accesibilidad y la accesibilidad por defecto. Kodaks se integra bien con las bibliotecas sin cabeza y agradece los comentarios a través de Discord.

1. Introducción a los Componentes Headless

Short description:

Soy Omri, el CTO de Kodaks, una empresa de Wix. Hoy hablaré sobre los Componentes Headless, su importancia, cómo utilizarlos de manera efectiva y las opciones populares. También compartiré nuestra experiencia en Kodaks. Los componentes son eficientes para el desarrollo de aplicaciones, pero hay mucho trabajo involucrado, especialmente para los menús. Muchos de nosotros utilizamos bibliotecas de componentes como Material UI y Ant Design para simplificar el proceso.

Soy Omri, soy el CTO de Kodaks. Kodaks es una empresa de Wix que construye herramientas increíbles para desarrolladores, y voy a hablar sobre los Componentes Headless. Qué son. Por qué deberías preocuparte. Cómo utilizarlos de la mejor manera. Vamos a repasar algunas opciones populares y verlo en ejemplos y, por supuesto, voy a compartir nuestra experiencia en Kodaks.

La razón por la que elegí este tema es que veo una gran oportunidad aquí para aprovechar una brecha en el mercado de una manera que nos ayude a todos. Sin vergüenza, Kodaks está disponible, es gratuito, es una versión beta abierta desde Navidad. Puedes seguirlo en el enlace de GitHub. Si estás usando una computadora de escritorio, es un IDE, no es realmente para teléfonos. La forma en que funciona es que puedes editar los componentes react visualmente y de forma aislada, y es una excelente, y muy efectiva forma de editar tus componentes.

Los componentes son geniales, por eso todos los usamos. Pero nos pagan por construir aplicaciones, ¿verdad? Los componentes son solo una forma muy eficiente de hacer eso. Por cierto, esta es la única referencia a la IA, así que mi regalo para ti es como diez minutos sin IA. Volviendo a nuestra aplicación, queremos construir algo como un clon de Google Docs y hay mucho trabajo. En ese trabajo, está esta cosa del menú. Es un menú bastante básico. Y si somos muy ingenuos, podríamos decir algo como, ¿qué tan difícil puede ser, verdad? Es HTML y CSS es trivial. Tiene estados abiertos y cerrados, un montón de elementos. Los elementos se hacen clic, fin del problema. Excepto por algunos comportamientos secundarios como pequeñas cosas, como, ya sabes, z-indexing, accessibility, redimensionamiento, pellizcar, desplazamiento, enfoque, navegación por teclado. Bueno, en realidad es mucho trabajo. Y esto ni siquiera es algo que esté en la especificación, ¿verdad? Esto es solo algo que debemos hacer para lanzar productos de calidad. Y supongo que esa es la razón por la que muchos de nosotros usamos bibliotecas de componentes. Ya sea que construyas la tuya propia a lo largo de los años, que la lleves de un proyecto al siguiente. O uses una de código abierto o comercialmente disponible. Tenemos Material UI, Ant Design. Es un gran espectro. Algunas de ellas son realmente buenas. Todas tienen la misma premisa.

2. The Customizability Wall and Solving Problems

Short description:

Los desarrolladores hablan y podrás desarrollar una interfaz de usuario atractiva muy rápidamente. Pero hay un problema con todos ellos, ¿verdad? Lo llamo el muro de personalización. Y aquí está la anatomía del muro de personalización. Prometes a tu gerente de producto una lógica empresarial personalizada accesible a través de un diseño hermoso y único. Y tu diseño y la biblioteca de componentes que elijas están teniendo una pelea. Así que, solo por mostrar de manos, estamos aquí estrellados contra este muro de personalización. Y ya vemos que hay un problema. La estructura de datos no acepta un ícono para el grupo, y podemos ver que en realidad nada ha cambiado. Pero por alguna razón, no podemos agregarlo al grupo y estamos un poco atascados. ¿Podemos resolver este problema? Por supuesto que sí. Podemos hacer ingeniería inversa y diseñar.

Los desarrolladores hablan y podrás desarrollar una interfaz de usuario atractiva muy rápidamente. Y los buenos realmente cumplen con eso. Pero hay un problema con todos ellos, ¿verdad? Lo llamo el muro de personalización. Y te estrellas contra él bastante tarde en el proyecto cuando descubres que tu tabla y tu selección múltiple no se sienten o no se ven iguales.

Y aquí está la anatomía del muro de personalización. Prometes a tu gerente de producto una lógica empresarial personalizada accesible a través de un diseño hermoso y único. Y tu diseño y la biblioteca de componentes que elijas están teniendo una pelea. Y si trabajas como yo, esto es especialmente frustrante porque lo ves muy tarde en el juego, porque me gusta construir una interfaz de usuario rápida para transmitir el punto de la lógica empresarial al cliente, hacer algunas iteraciones y luego hacer los ajustes finales solo en las características que realmente se enviarán.

Así que, solo por mostrar de manos, estamos aquí estrellados contra este muro de personalización. Muy bien. Para los pocos afortunados que no levantaron la mano, permítanme mostrarles un ejemplo. Y voy a usar Codex para mostrar los ejemplos. Este es nuestro IDE y este es el comportamiento esperado. Este menú es de AntDesign. Es una biblioteca de componentes realmente buena. Es altamente personalizable. Y lo que podemos ver aquí es que el menú tiene un submenú y los elementos se pueden agrupar. Y mi diseño requiere un ícono en el grupo A. Vamos a reciclar este ícono aquí. Así que déjame tomarlo. Y este es el dato que genera el menú. Solo voy a copiar y pegar. Perfecto. Y ya vemos que hay un problema. La estructura de datos no acepta un ícono para el grupo y podemos ver que en realidad nada ha cambiado. Solo para transmitir el punto, puedo agregarlo a los subelementos reales. ¿Verdad? Puedes ver el ícono. Pero por alguna razón, no podemos agregarlo al grupo y estamos un poco atascados. ¿Podemos resolver este problema? Por supuesto que sí. Podemos hacer ingeniería inversa y diseñar.

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

Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Concurrent React y Server Components están cambiando la forma en que pensamos sobre el enrutamiento, la renderización y la obtención de datos en las aplicaciones web. Next.js recientemente compartió parte de su visión para ayudar a los desarrolladores a adoptar estas nuevas características de React y aprovechar los beneficios que desbloquean.En esta charla, exploraremos el pasado, presente y futuro del enrutamiento en las aplicaciones de front-end y discutiremos cómo las nuevas características en React y Next.js pueden ayudarnos a arquitectar aplicaciones más eficientes y con más funciones.
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
React Advanced Conference 2021React Advanced Conference 2021
47 min
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
Top Content
Los sistemas de diseño buscan aportar consistencia al diseño de una marca y hacer que el desarrollo de la interfaz de usuario sea productivo. Las bibliotecas de componentes con una API bien pensada pueden facilitar esto. Pero, ¡a veces una elección de API puede accidentalmente sobrepasar y ralentizar al equipo! Hay un equilibrio allí... en algún lugar. Exploremos algunos de los problemas y posibles soluciones creativas.
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Top Content
Puedes revisar las diapositivas de la charla de James aquí.
Aplicaciones React (+Native) full-stack y seguras con tRPC.io
React Advanced Conference 2021React Advanced Conference 2021
6 min
Aplicaciones React (+Native) full-stack y seguras con tRPC.io
Top Content
¿Por qué estamos los desarrolladores tan obsesionados con desacoplar cosas que son de naturaleza acoplada? tRPC es una biblioteca que reemplaza la necesidad de GraphQL o REST para APIs internas. Al usarla, simplemente escribes funciones de backend cuyas formas de entrada y salida se infieren instantáneamente en tu frontend sin ninguna generación de código; haciendo que la escritura de esquemas de API sea cosa del pasado. Es ligera, no está vinculada a React, se puede almacenar en caché HTTP y se puede adoptar de forma incremental. En esta charla, daré un vistazo a la DX que puedes obtener de tRPC y cómo (y por qué) empezar.
Pensando en React Query
React Summit 2023React Summit 2023
22 min
Pensando en React Query
Top Content
En esta charla, explicaré React Query desde una perspectiva diferente. Después de haber mantenido React Query durante más de dos años y haber respondido muchas preguntas (a menudo las mismas varias veces), siento que podría faltar una comprensión fundamental sobre la librería. Comenzaré con una rápida introducción sobre mi viaje en el mundo de código abierto y cómo llegué a conocer React Query, seguido de mostrar qué cambio de mentalidad es beneficioso cuando se trabaja con React Query - cómo "pensar en React Query".Tendré 3 conclusiones principales:1) React Query no es una biblioteca de obtención de datos. Es un administrador de estado asíncrono, hablaremos rápidamente sobre qué hace a un administrador de estado, por qué React Query es uno y qué significa "estado asíncrono".2) staleTime es tu mejor amigo. He visto un poco de confusión sobre cómo usar React Query como un administrador de estado, así que explicaré por qué configurar staleTime es en su mayoría todo lo que necesitas3) los parámetros son dependencias. Esto es importante para entender para mostrar los límites entre el estado del cliente y el estado del servidor, y es esencial cuando se hace la gestión del estado con React Query. Terminaré con una nota sobre "separación de preocupaciones" y sobre los compromisos de simplemente llamar `useQuery` donde lo necesites en tu árbol de componentes.
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Existen muchas formas de autorizar componentes en React, y hacerlo correctamente puede no ser tan fácil, especialmente cuando los componentes se vuelven más complejos. En esta charla, aprenderás cómo construir componentes React a prueba de futuro. Cubriremos dos enfoques diferentes para construir componentes - Composición y Configuración, para construir el mismo componente utilizando ambos enfoques y explorar sus ventajas y desventajas.

Workshops on related topic

Construye un Tablero Rico en Datos y Hermoso con la Rejilla de Datos de MUI X y Joy UI
React Summit 2023React Summit 2023
137 min
Construye un Tablero Rico en Datos y Hermoso con la Rejilla de Datos de MUI X y Joy UI
Top Content
WorkshopFree
Sam Sycamore
Siriwat (Jun) Kunaporn
2 authors
Aprende cómo utilizar el ecosistema completo de MUI para construir un tablero de gestión de proyectos hermoso y sofisticado en una fracción del tiempo que tomaría construirlo desde cero. En particular, veremos cómo integrar la Rejilla de Datos de MUI X con Joy UI, nuestra biblioteca de componentes más nueva y hermana del estándar de la industria Material UI.
Tabla de contenidos:- Presentando nuestro proyecto y herramientas- Configuración de la aplicación e instalación del paquete- Construcción del tablero- Prototipado, estilos y temas - Características de Joy UI- Filtrado, ordenación, edición - Características de la Rejilla de Datos- Conclusión, pensamientos finales, P&R
Práctica con AG Grid's React Data Grid
React Summit 2022React Summit 2022
147 min
Práctica con AG Grid's React Data Grid
WorkshopFree
Sean Landsman
Sean Landsman
Comienza con AG Grid React Data Grid con un tutorial práctico del equipo principal que te guiará a través de los pasos para crear tu primera cuadrícula, incluyendo cómo configurar la cuadrícula con propiedades simples y componentes personalizados. La edición comunitaria de AG Grid es completamente gratuita para usar en aplicaciones comerciales, por lo que aprenderás una herramienta poderosa que puedes agregar de inmediato a tus proyectos. También descubrirás cómo cargar datos en la cuadrícula y diferentes formas de agregar representación personalizada a la cuadrícula. Al final del masterclass, habrás creado una cuadrícula de datos AG Grid React y la habrás personalizado con componentes funcionales de React.- Comenzando e instalando AG Grid- Configurando ordenamiento, filtrado, paginación- Cargando datos en la cuadrícula- La API de la cuadrícula- Usando hooks y componentes funcionales con AG Grid- Capacidades de la edición comunitaria gratuita de AG Grid- Personalizando la cuadrícula con componentes de React
Master Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Master Patrones de JavaScript
Workshop
Adrian Hajdin
Adrian Hajdin
Durante este masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debe conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final del masterclass, los participantes ganarán confianza en su capacidad para escribir código JavaScript de alta calidad que perdure en el tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento profesional y las oportunidades de avance en la industria del software
Practica Técnicas de TypeScript Construyendo una Aplicación con Componentes de Servidor React
TypeScript Congress 2023TypeScript Congress 2023
131 min
Practica Técnicas de TypeScript Construyendo una Aplicación con Componentes de Servidor React
Workshop
Maurice de Beijer
Maurice de Beijer
En esta masterclass práctica, Maurice te guiará personalmente a través de una serie de ejercicios diseñados para empoderarte con una profunda comprensión de los Componentes de Servidor React y el poder de TypeScript. Descubre cómo optimizar tus aplicaciones, mejorar el rendimiento y desbloquear nuevas posibilidades.
 
Durante la masterclass, realizarás:
- Maximizar la mantenibilidad y escalabilidad del código con prácticas avanzadas de TypeScript
- Desatar los beneficios de rendimiento de los Componentes de Servidor React, superando enfoques tradicionales
- Potenciar tu TypeScript con el poder de los Tipos Mapeados
- Hacer tus tipos TypeScript más seguros con Tipos Opacos
- Explorar el poder de los Tipos de Plantillas Literales al usar Tipos Mapeados
 
Maurice estará virtualmente a tu lado, ofreciendo una guía completa y respondiendo a tus preguntas mientras navegas por cada ejercicio. Al final de la masterclass, habrás dominado los Componentes de Servidor React, armado con un nuevo arsenal de conocimientos de TypeScript para potenciar tus aplicaciones React.
 
No pierdas esta oportunidad de elevar tu experiencia en React a nuevas alturas. Únete a nuestra masterclass y desbloquea el potencial de los Componentes de Servidor React con TypeScript. Tus aplicaciones te lo agradecerán.
De la Idea a la Producción: Desarrollo de React con un Toque Visual
React Summit 2023React Summit 2023
31 min
De la Idea a la Producción: Desarrollo de React con un Toque Visual
WorkshopFree
Omer Kenet
Omer Kenet
Únete a nosotros para un masterclass de 3 horas que explora el mundo del desarrollo creativo de React utilizando Codux. Los participantes explorarán cómo un enfoque visual puede desbloquear la creatividad, agilizar los flujos de trabajo y mejorar la velocidad de desarrollo. Sumérgete en las características que hacen de Codux un cambio de juego para los desarrolladores de React. La sesión incluirá ejercicios prácticos que demuestran el poder de la renderización en tiempo real, la manipulación visual del código y el aislamiento de componentes, todo en tu código fuente.
Tabla de contenidos:- Descarga e instalación: Preparando Codux para el masterclass- Selector de proyectos: Clonación e instalación de un proyecto de demostración- Introducción a los conceptos principales de Codux y su interfaz de usuario- Ejercicio 1: Encontrando nuestro camino- Descanso- Ejercicio 2: Realizando cambios de manera efectiva- Ejercicio 3: Reutilización y validación de casos especiales- Resumen, Cierre y Preguntas y Respuestas
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
React Advanced Conference 2022React Advanced Conference 2022
206 min
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
Workshop
Thomas Findlay
Thomas Findlay
Con el surgimiento de frameworks, como React, Vue o Angular, la forma en que se construyen los sitios web ha cambiado a lo largo de los años. Las aplicaciones modernas pueden ser muy dinámicas y realizar múltiples solicitudes de API para poblar un sitio web con contenido actualizado o enviar nuevos datos a un servidor. Sin embargo, este cambio de paradigma ha introducido nuevos problemas con los que los desarrolladores deben lidiar. Cuando una solicitud de API está pendiente, tiene éxito o falla, el usuario debe recibir una retroalimentación significativa. Otros problemas pueden incluir el almacenamiento en caché de datos de API o la sincronización del estado del cliente con el servidor. Todos estos problemas requieren soluciones que deben ser codificadas, pero pueden volverse rápidamente inmanejables y dar como resultado una base de código difícil de ampliar y mantener. En este masterclass, cubriremos cómo manejar las solicitudes de API, los estados de API y la cancelación de solicitudes mediante la implementación de una Capa de API y combinándola con React-Query.
Prerrequisitos: Para aprovechar al máximo este masterclass, debes estar familiarizado con React y Hooks, como useState, useEffect, etc. Si deseas codificar junto con nosotros, asegúrate de tener Git, un editor de código, Node y npm instalados en tu máquina.