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.

8 min
17 Jun, 2021

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.

Available in English

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

React Summit 2022React Summit 2022
17 min
Composition vs Configuration: How to Build Flexible, Resilient and Future-proof Components
Top Content
There are many ways of authoring components in React, and doing it right might not be that easy, especially when components get more complex. In this talk, you will learn how to build future-proof React components. We will cover two different approaches to building components - Composition and Configuration, to build the same component using both approaches and explore their advantages and disadvantages.
React Summit 2022React Summit 2022
20 min
Find Out If Your Design System Is Better Than Nothing
Building a design system is not enough. Your dev team has to prefer it over one-off components and third-party libraries. Otherwise, the whole effort is a waste of time. Learn how to use static code analysis to measure if your design system wins over the internal competition and data-driven ways to improve your position.
TestJS Summit 2022TestJS Summit 2022
25 min
CCTDD: Cypress Component Test Driven Design
The first part of the talk will focus on a variety of patterns when using Cypress Component Testing and TDD to create React components. The code samples will be from Angular's Tour of Heroes to make the content relatable to a wider community. Currently I am working on a GitBook rewriting it in React using Cypress Component Tests, there should be plenty of content to distill into the talk.The second part of the talk will focus on test strategies, types of testing and where to apply them, and finally compare & contrast them to the familiar industry approaches.We will finish with key takeaways, sample application repos to help with learning, and rollout strategies.

Workshops on related topic

React Summit 2022React Summit 2022
147 min
Hands-on with AG Grid's React Data Grid
WorkshopFree
Get started with AG Grid React Data Grid with a hands-on tutorial from the core team that will take you through the steps of creating your first grid, including how to configure the grid with simple properties and custom components. AG Grid community edition is completely free to use in commercial applications, so you'll learn a powerful tool that you can immediately add to your projects. You'll also discover how to load data into the grid and different ways to add custom rendering to the grid. By the end of the workshop, you will have created an AG Grid React Data Grid and customized with functional React components.- Getting started and installing AG Grid- Configuring sorting, filtering, pagination- Loading data into the grid- The grid API- Using hooks and functional components with AG Grid- Capabilities of the free community edition of AG Grid- Customizing the grid with React Components
TypeScript Congress 2023TypeScript Congress 2023
131 min
Practice TypeScript Techniques Building React Server Components App
Workshop
In this hands-on workshop, Maurice will personally guide you through a series of exercises designed to empower you with a deep understanding of React Server Components and the power of TypeScript. Discover how to optimize your applications, improve performance, and unlock new possibilities.
 
During the workshop, you will:
- Maximize code maintainability and scalability with advanced TypeScript practices
- Unleash the performance benefits of React Server Components, surpassing traditional approaches
- Turbocharge your TypeScript with the power of Mapped Types
- Make your TypeScript types more secure with Opaque Types
- Explore the power of Template Literal Types when using Mapped Types
 
Maurice will virtually be by your side, offering comprehensive guidance and answering your questions as you navigate each exercise. By the end of the workshop, you'll have mastered React Server Components, armed with a newfound arsenal of TypeScript knowledge to supercharge your React applications.
 
Don't miss this opportunity to elevate your React expertise to new heights. Join our workshop and unlock the potential of React Server Components with TypeScript. Your apps will thank you.
React Summit 2023React Summit 2023
31 min
From Idea to Production: React Development with a Visual Twist
WorkshopFree
Join us for a 3-hour workshop that dives into the world of creative React development using Codux. Participants will explore how a visually-driven approach can unlock creativity, streamline workflows, and enhance their development velocity. Dive into the features that make Codux a game-changer for React developers. The session will include hands-on exercises that demonstrate the power of real-time rendering, visual code manipulation, and component isolation all in your source code.
Table of the contents: - Download & Setup: Getting Codux Ready for the Workshop- Project Picker: Cloning and Installing a Demo Project- Introduction to Codux Core Concepts and Its UI- Exercise 1: Finding our Feet- Break- Exercise 2: Making Changes While Staying Effective- Exercise 3: Reusability and Edge Case Validation- Summary, Wrap-Up, and Q&A
React Summit 2022React Summit 2022
98 min
Crash Course into TypeScript for content from headless CMS
WorkshopFree
In this workshop, I’ll first show you how to create a new project in a headless CMS, fill it with data, and use the content in your project. Then, we’ll spend the rest of time in code, we will:- Generate strongly typed models and structure for the fetched content.- Use the content in components- Resolve content from rich text fields into React components- Touch on deployment pipelines and possibilities for discovering content-related issues before hitting production
You will learn:- How to work with content from headless CMS- How content model can be leveraged to generate TS types and what benefits it brings to your project- How not to use string literals for content in code anymore- How to do rich text resolution into React components- How to minimize or avoid content-related issues before hitting production