Componentes de React y cómo estilizarlos

Rate this content
Bookmark

Un análisis comparativo entre cuatro métodos de estilizar componentes de React, desde estilos en línea hasta Styled-Components. Esta charla es más adecuada para desarrolladores principiantes.

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

FAQ

Jemima enfrentó problemas como el anidamiento de componentes que causaba la sobrescritura de estilos, dificultades de diseño al intentar colocar un componente fijo en un contenedor flexible, y la complicación de nombrar componentes y subcomponentes adecuadamente.

Jemima ha probado varios métodos de estilización incluyendo estilo en línea, hojas de estilo CSS, CSS en JS, y ha mencionado también el uso de Tailwind y Style Components.

Jemima utiliza el estilo en línea principalmente para anular estilos existentes debido a su alta especificidad y para pasar propiedades dinámicas como props, siendo útil para establecer imágenes de fondo, por ejemplo.

Las hojas de estilo CSS son útiles para colocar estilos directamente con los elementos con los que se está trabajando, facilitando saber dónde hacer los cambios necesarios y manejar el estilo global.

Tailwind es un framework de CSS que utiliza utilidades predefinidas para estilos. Jemima lo encontró complicado de configurar y difícil de usar, ya que requería buscar constantemente propiedades específicas.

Los Style Components son plantillas literales que permiten integrar CSS dentro de JavaScript, ofreciendo beneficios como el acceso a pseudo selectores y la posibilidad de establecer estilos globales y temáticos, siendo muy útiles y poderosos para estilizar.

Jemima sugiere visitar su sitio web en jemimaabu.com/slides/styling-react, donde se pueden encontrar diapositivas y enlaces adicionales para obtener más información sobre los métodos de estilización en React.

Jemima Abu
Jemima Abu
8 min
17 Jun, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla relámpago explora diferentes métodos de estilizar componentes de React, incluyendo estilos en línea, hojas de estilo CSS y CSS en JS. El orador destaca los beneficios de usar Style Components y Emotion, como el acceso a pseudo selectores, estilos globales y elementos temáticos. También se discute el concepto de polimorfismo en Style Components. El orador recomienda usar Style Components por su poder y accesibilidad. La elección del método de estilizado depende de la escala del proyecto y de la preferencia personal.

1. Styling React Components

Short description:

[♪ música tocando ♪ Hola a todos, soy Jemima y hoy voy a hablarles sobre el estilo de los componentes de React. Esta es una charla rápida, así que nos moveremos rápido. Básicamente, esta charla va a ser como uno de esos artículos de Buzzfeed que dicen 'Probé cinco métodos diferentes de estilo con React para que no tengas que hacerlo tú'. Así que estos son los métodos que he probado a lo largo del tiempo. Estilo en línea, hojas de estilo CSS y CSS en JS. Así que vamos a ver cada uno de ellos rápidamente y ver qué son. Los Style Components son, básicamente, como plantillas literales. Sabes, tienes tus propiedades CSS y las pasas como una plantilla literal. Son realmente geniales porque te brindan todos los beneficios del estilo en línea, pero también como los archivos CSS porque tienes acceso a los pseudo selectores, tienes acceso al estilo global, puedes establecer elementos temáticos, simplemente los Style Components son realmente útiles. Son realmente poderosos cuando se trata de estilizar. Y lo mismo ocurre con Emotion, la mayoría de las bibliotecas de CSS en JS admiten específicamente Style Components. Otra razón por la que me encantan los Style Components es porque realmente te ayudan con la accesibilidad. Muchas veces puedes definir los elementos utilizando la etiqueta semántica, como el nombre del elemento semántico, y se renderizará de manera semántica, lo cual es genial. Otra cosa realmente genial de los Style Components es esta cosa llamada polimorfismo, que es simplemente una forma elegante de hacer que un elemento se vea como otro elemento.

[♪ música tocando ♪] Hola a todos, soy Jemima y hoy voy a hablarles sobre el estilo de los componentes de React. Esta es una charla rápida, así que nos moveremos rápido. Básicamente, esta charla va a ser como uno de esos artículos de Buzzfeed que dicen 'Probé cinco métodos diferentes de estilo con React para que no tengas que hacerlo tú'. Básicamente, cuando comencé a trabajar con el estilo en los componentes de React, solía encontrarme con un montón de errores molestos, como anidar componentes en otro componente y luego el estilo se sobrescribe, o tener problemas de diseño al intentar colocar un componente fijo en un contenedor flexible y que no encaje en el flujo, o tener que empezar a descubrir cómo nombrar componentes y subcomponentes. O tener que ser muy específico al seleccionar tus elementos. Así que básicamente tenía todos estos problemas y buscaba un método de estilo que fuera fácil de usar y aprender porque era como cambiar de cómo se estiliza en HTML a cómo se estiliza en React, y necesitaba algo que fuera similar para mí, algo que me ayudara a mantener la estructura de archivos y la estructura del código, algo que fuera optimizado porque, por supuesto, el rendimiento es importante, y algo que pudiera ser utilizado en varios componentes y que fuera escalable. Así que estos son los métodos que he probado a lo largo del tiempo. Estilo en línea, hojas de estilo CSS y CSS en JS. Así que vamos a ver cada uno de ellos rápidamente y ver qué son. Para el estilo en línea, eso es simplemente poner el método de estilo en los elementos como un atributo. Lo uso principalmente para anular estilos existentes porque el estilo en línea tiene una especificidad muy alta, y para pasar propiedades como props, como cuando necesitas establecer una imagen de fondo como una prop, es realmente genial para eso. Con las hojas de estilo CSS, eso son tus archivos CSS, tus módulos CSS y tus preprocesadores, y las hojas de estilo de Tailwind, pero no era realmente CSS en JS, solo lo mantuve aquí. Vi a alguien en Twitter llamarlo CSS en HTML, lo cual creo que es muy acertado. Así que sí, así es como tienes tus archivos CSS regulares y luego puedes usarlos para, realmente me gustan los archivos CSS porque son muy útiles para colocar las hojas de estilo directamente con los elementos en los que estás trabajando, así que es genial para la colocación y es más fácil saber dónde hacer los cambios que necesitas. Para manejar el estilo global, simplemente puedes pasar un método global para seleccionar todos los elementos y pasarlos a tu app.js y es genial. Para el estilo anidado, si estás usando preprocesadores, puedes incluir los nombres de estilo en el anidamiento global del nombre del componente, y eso realmente evita todo el problema de sobrescritura con el que me encontraba antes. Así que eso es genial. Tailwind es algo con lo que comencé a trabajar recientemente y tal vez sea solo yo personalmente, pero no me gustó, porque me llevó dos días descubrir cómo configurarlo, pero lo incluí aquí por el bien de la intuición. Básicamente, Tailwind funciona con utilidades, las utilidades son como nombres de clase preexistentes que ya tienen todas estas propiedades, así que no tienes que definirlas, por ejemplo, py2 sería una propiedad de relleno superior e inferior de lo que definas que sea el 2, por ejemplo, podría ser un REM. Tailwind es realmente bueno si tienes un sistema de diseño en varios proyectos, por ejemplo, si trabajas con una empresa que utiliza el mismo sistema de diseño en varios proyectos, puedes definir todas esas propiedades como tu margen o tu relleno o tus colores en tu archivo Tailwind.config.js y puedes importarlo en varios proyectos y es genial. CSS en JS, cuando escuché por primera vez sobre CSS en JS pensé, ¿CSS y JavaScript? Eso es ridículo, y ahora pienso, ¿por qué no está todo en JavaScript? Esto es lo mejor que hay. Así que he trabajado con Style Components y Emotion, no he trabajado con JSS, pero lo incluí aquí porque pensé que el nombre era muy acertado porque CSS y JS. Los Style Components son, básicamente, como plantillas literales. Sabes, tienes tus propiedades CSS y las pasas como una plantilla literal. Son realmente geniales porque te brindan todos los beneficios del estilo en línea, pero también como los archivos CSS porque tienes acceso a los pseudo selectores, tienes acceso al estilo global, puedes establecer elementos temáticos, simplemente los Style Components son realmente útiles. Son realmente poderosos cuando se trata de estilizar. Y lo mismo ocurre con Emotion, la mayoría de las bibliotecas de CSS en JS admiten específicamente Style Components. Otra razón por la que me encantan los Style Components es porque realmente te ayudan con la accesibilidad. Muchas veces puedes definir los elementos utilizando la etiqueta semántica, como el nombre del elemento semántico, y se renderizará de manera semántica, lo cual es genial. Otra cosa realmente genial de los Style Components es esta cosa llamada polimorfismo, que es simplemente una forma elegante de hacer que un elemento se vea como otro elemento.

2. Métodos de Estilización en React

Short description:

Por ejemplo, puedes pasar un elemento div con estilo como un elemento de botón, lo que te permite reutilizar el estilo para enlaces y botones. En mi experiencia, los componentes de estilo son mi método favorito, pero tienen una curva de aprendizaje y requieren instalación. Tailwind, aunque no es mi preferencia, sigue siendo un buen framework. La elección del método depende del tamaño del proyecto y de las preferencias personales. Consulta las diapositivas y enlaces en mi sitio web para obtener más detalles. ¡Gracias por escuchar!

Una forma de hacer que un elemento se vea como otro elemento. Por ejemplo, aquí tengo un elemento div con estilo y un elemento de botón con estilo. Estoy pasando el elemento de botón a mi prop. Lo que va a suceder es que mis elementos, el elemento div con estilo, en realidad se renderizará como un elemento de botón. Esto es realmente útil cuando tienes, digamos, enlaces y botones que necesitan tener el mismo estilo, pero no quieres empezar a anular todo el estilo de los botones, puedes simplemente pasar el estilo de botón como enlace o pasar enlace como estilo de botón. Y el enlace se renderizará como un botón o el botón se renderizará como un enlace, dependiendo de cómo lo hayas configurado. Esta es una pequeña tabla que creé a partir de mi experiencia y mis preferencias. No estoy diciendo que este sea el mejor método en comparación con los demás. Es simplemente cómo los encontré. Según esta tabla, diría que mi método favorito es definitivamente los componentes de estilo, solo que fue un poco difícil para mí aprenderlo, ya sabes, tiene una curva de aprendizaje y no es muy fácil de configurar. Tienes que instalar muchas cosas. Tailwind fue mi menos favorito, no porque sea malo, sino porque simplemente no pude entenderlo. No pude descubrir cómo configurarlo. No pude descubrir cómo usarlo. Todavía tengo que buscar en Google cualquier propiedad que esté tratando de definir si estoy usando Tailwind. No conozco esas cosas de memoria. Pero sí, creo que sigue siendo un buen framework si eso es lo que te gusta. Por supuesto, cada uno de estos métodos se adapta a un tipo particular de proyecto. Si estás haciendo un proyecto a gran escala, es posible que desees usar componentes de estilo o archivos CSS porque puedes adjuntar varios archivos de esa manera. Si estás haciendo algo a pequeña escala, puedes quedarte con Tailwind, por ejemplo, porque de esa manera no necesitas empezar a pensar en nombres de clase y cosas así. Simplemente puedes pasar las utilidades. Así que todo depende de tus preferencias. Eso es todo. Como dije, una charla rápida para ustedes. Tengo diapositivas para esto. Estas son las diapositivas de la versión original de esta charla, que es mucho más larga e incluye puntos más específicos para cada método de estilización. Puedes verlas en mi sitio web jemimaabu.com/slides/styling-react. Así que puedes echarles un vistazo allí. También incluí algunos enlaces para obtener más información sobre los métodos de estilización en React, son realmente buenos y útiles, puedes consultarlos allí. Eso es todo por mi parte. Muchas gracias por escuchar. Si tienes alguna pregunta, creo que habrá una sesión de preguntas y respuestas con el presentador después de esto, o en mi caso, hay un espacio de asesoramiento, de cualquier manera, puedes contactarme allí. O puedes completar el formulario de contacto en mi sitio web jemimaabu.com, o enviarme un mensaje en Twitter o LinkedIn. Me encontrarás en línea en todas partes como jemimaabu. Gracias por escuchar y que disfrutes el resto de la charla. Adiós.

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

Estudio de caso: Construcción de componentes React reutilizables accesibles en GitHub
React Summit 2024React Summit 2024
29 min
Estudio de caso: Construcción de componentes React reutilizables accesibles en GitHub
The talk discusses building accessible React components and emphasizes the importance of using the correct HTML elements and ARIA roles for accessibility. It explains how to navigate and select options within a form and how to add supplementary text using Aria described by. The speaker also discusses the benefits of using conditional checkboxes and ARIA disabled to improve the UI. Additionally, the talk explores the role of JavaScript in web accessibility and provides recommendations for testing website accessibility.
React Server Components en Aplicaciones de IA
React Advanced 2024React Advanced 2024
17 min
React Server Components en Aplicaciones de IA
Today we will discuss React server components with AI and how to build a better search experience using them. We will learn how to make a Next.js app AI-enabled using the Vercel AI SDK. The Vercel AI SDK's streamUI function with the GPT 4.0 model will be used to make suggestions interactive. We will explore the use of history and conversation in AI and how to continue the conversation and read the result. The concept of generative UI with the vector database will be introduced, along with querying the database for movies. We will process user queries and return movies based on them. The power of React server components in enhancing UI will be demonstrated. In summary, the Talk covers vector embeddings, natural language search, and generative UI.
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
Today's Talk discusses building flexible, resilient, and future-proof React components using composition and configuration approaches. The composition approach allows for flexibility without excessive conditional logic by using multiple components and passing props. The context API can be used for variant styling, allowing for appropriate styling and class specification. Adding variants and icons is made easy by consuming the variant context. The composition and configuration approaches can be combined for the best of both worlds.
El componente de React más caro del mundo y cómo dejar de escribirlo
React Advanced 2021React Advanced 2021
23 min
El componente de React más caro del mundo y cómo dejar de escribirlo
Top Content
Today's Talk discusses expensive React components and API design, with a focus on the cost of coordination and overcoming imposter syndrome. The speaker shares a story about a cat trying to fix salted coffee, highlighting the importance of finding simple solutions. The billion dollar component on ReactJS.org is examined as an example of an expensive component. Techniques for customizing messages, improving accessibility, and using polymorphic props are discussed. The Talk concludes by emphasizing the cost of communication and the need to evaluate if props and components are the right tools for the job.
Descubre si tu sistema de diseño es mejor que nada
React Summit 2022React Summit 2022
20 min
Descubre si tu sistema de diseño es mejor que nada
Building a design system without adoption is a waste of time. Grafana UI's adoption is growing consistently over time. The factors affecting design system adoption include the source mix changing, displacement of Homebrew components by Grafana UI, and the limitations of Grafana UI's current state. Measuring adoption is important to determine the success of a design system. The analysis of code through static code analysis tools is valuable in detecting and tracking component usage.
Cómo lograr la composición de diseño en React
React Summit 2022React Summit 2022
8 min
Cómo lograr la composición de diseño en React
This talk discusses achieving layout composition in React using Bedrock Layout Primitives. By componentizing CSS layout, complex layouts can be achieved and reused across different components. The talk also covers the challenges of achieving complex layouts, such as card lineups, and provides solutions for maintaining alignment and responsiveness. The BedrockLayout primitive library simplifies web layouts and offers flexibility in composing layouts.

Workshops on related topic

Práctica con la Rejilla de Datos React de AG Grid
React Summit 2022React Summit 2022
147 min
Práctica con la Rejilla de Datos React de AG Grid
Top Content
WorkshopFree
Sean Landsman
Sean Landsman
Comienza con la Rejilla de Datos React de AG Grid con un tutorial práctico del equipo central que te llevará a través de los pasos para crear tu primera rejilla, incluyendo cómo configurar la rejilla 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 inmediatamente a tus proyectos. También descubrirás cómo cargar datos en la rejilla y diferentes formas de agregar renderizado personalizado a la rejilla. Al final de la masterclass, habrás creado una Rejilla de Datos React de AG Grid y personalizado con componentes React funcionales.- Comenzando e instalando AG Grid- Configurando ordenación, filtrado, paginación- Cargando datos en la rejilla- La API de la rejilla- Usando hooks y componentes funcionales con AG Grid- Capacidades de la edición comunitaria gratuita de AG Grid- Personalizando la rejilla con Componentes React
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
Curso intensivo de TypeScript para contenido de un CMS sin cabeza
React Summit 2022React Summit 2022
98 min
Curso intensivo de TypeScript para contenido de un CMS sin cabeza
WorkshopFree
Ondrej Polesny
Ondrej Polesny
En este masterclass, primero te mostraré cómo crear un nuevo proyecto en un CMS sin cabeza, llenarlo con datos y usar el contenido en tu proyecto. Luego, pasaremos el resto del tiempo en código, haremos lo siguiente:- Generar modelos y estructuras de tipo fuertemente tipados para el contenido obtenido.- Usar el contenido en componentes- Resolver contenido de campos de texto enriquecido en componentes de React- Tocar los pipelines de implementación y las posibilidades de descubrir problemas relacionados con el contenido antes de llegar a producción
Aprenderás:- Cómo trabajar con contenido de un CMS sin cabeza- Cómo se puede aprovechar el modelo de contenido para generar tipos en TypeScript y qué beneficios aporta a tu proyecto- Cómo dejar de usar literales de cadena para el contenido en el código- Cómo resolver texto enriquecido en componentes de React- Cómo minimizar o evitar problemas relacionados con el contenido antes de llegar a producción