¿Cómo se comunican los componentes? Props y atributos
Clase 4 de 34 • Curso de React.js
Contenido del curso
- 13

Local Storage con React.js
25:48 - 14

Custom Hooks
17:53 - 15

Organización de archivos y carpetas
07:40 - 16

Feature-First Directories en React
09:12 - 17

Tips para naming y abstracción de componentes React
12:24 - 18

¿Qué son los efectos en React?
14:04 - 19

Estados de carga y error
15:04 - 20

Actualizando estados desde useEffect
16:20 - 21

Reto: loading skeletons
11:59 - 22

¿Qué es React Context?
20:57 - 23

useContext
10:47 - 24

¿Qué son los React Portals?
14:03 - 25

Reto: estados para abrir y cerrar un modal
03:33 - 26

Maquetando formularios en React
15:08 - 27

Crear TODOs: React Context dentro de React Portals
15:16
¿Cómo utilizar las props para comunicar componentes en React?
En el desarrollo de aplicaciones, es común que los componentes necesiten comunicarse y compartir información. React nos ofrece una solución simple y efectiva para lograrlo, denominada "props". Este recurso permite que los componentes presenten datos dinámicos, en lugar de contenido estático o "hardcoded". Pero, ¿cómo funcionan exactamente y cómo las implementamos?
¿Qué son las props y cómo se implementan?
Las props (propiedades) son similares a los parámetros en funciones, pero aplicadas a componentes. Se envían como atributos en el JSX:
<TodoCounter completed={16} total={25} />
Aquí, TodoCounter recibe dos props: completed y total. Estas se accesan en el componente mediante la destructuración:
const TodoCounter = ({ completed, total }) => (
<h1>Has completado {completed} de {total} todos</h1>
);
¿Cómo se utilizan las props para incrementar la reutilización?
Un componente que acepta props se vuelve más reutilizable, ya que se adapta a distintos datos sin modificar su estructura base:
<TodoCounter completed={8} total={10} />
<TodoCounter completed={3} total={5} />
Con esto, un mismo componente es capaz de mostrar diferentes resultados de acuerdo a las props que recibe.
¿Qué es la prop children y cómo se usa?
La prop children es una propiedad especial que automáticamente encapsula todo lo que está entre las etiquetas de apertura y cierre de un componente:
<TodoList>
<TodoItem ... />
<TodoItem ... />
</TodoList>
React convierte automáticamente el contenido en la prop children, que podemos utilizar dentro de nuestro componente:
const TodoList = ({ children }) => (
<ul>{children}</ul>
);
React Fragments: ¿Cómo evitar elementos innecesarios?
React Fragments (<React.Fragment>) permiten retornar múltiples elementos sin producir nodos extra en el DOM. Es útil para no llenar nuestro HTML de div innecesarios y puede verse así:
return (
<React.Fragment>
<Header />
<MainContent />
<Footer />
</React.Fragment>
);
De este modo, se mantiene una estructura limpia y clara en el DOM.
Renderización de arrays y property key
Cuando trabajamos con listas, es esencial proporcionar una prop key única para cada elemento. Esto facilita la eficiencia y orden del sistema de renderizado de React:
const todos = defaultTodos.map((todo, index) => (
<TodoItem key={index} text={todo.text} completed={todo.completed} />
));
Aquí, nos aseguramos de que cada TodoItem tenga una key única, usando un índice o algún identificador único relevante.
¿Por qué es necesaria la key?
La key ayuda a React a identificar qué elementos han cambiado, añadido o eliminado. Esto optimiza la actualización de listas y es una práctica recomendada para evitar advertencias en la consola y mejorar el rendimiento de la aplicación.
Convertir información estática en dinámica con props
Las props transforman componentes con datos estáticos en entidades dinámicas y personalizables. Este uso, combinado con herramientas como React Fragments y la renderización mediante arrays, proporciona un marco flexible y poderoso para el desarrollo de aplicaciones React. Con práctica, podrás crear interfaces de usuarios dinámicas y eficientes.
¿Qué sigue después de manejar las props?
Una vez dominadas las props, el siguiente paso es personalizar el aspecto de tu aplicación con CSS. Aprende a combinar React y estilos CSS para llevar tus interfaces cerca del diseño original. ¡Continúa explorando y prueba nuevas técnicas para enriquecer tus habilidades en React!