v19.2Latest

Describiendo la interfaz de usuario

React es una biblioteca de JavaScript para renderizar interfaces de usuario (UI). La UI se construye a partir de pequeñas unidades como botones, texto e imágenes. React te permite combinarlas encomponentesreutilizables y anidables. Desde sitios web hasta aplicaciones móviles, todo lo que aparece en la pantalla puede descomponerse en componentes. En este capítulo, aprenderás a crear, personalizar y mostrar condicionalmente componentes de React.

Tu primer componente

Las aplicaciones de React se construyen a partir de piezas aisladas de UI llamadascomponentes. Un componente de React es una función de JavaScript que puedes espolvorear con marcado. Los componentes pueden ser tan pequeños como un botón o tan grandes como una página completa. Aquí hay un componenteGalleryque renderiza tres componentesProfile:

¿Listo para aprender este tema?

LeeTu primer componentepara aprender a declarar y usar componentes de React.

Leer más

Importar y exportar componentes

Puedes declarar muchos componentes en un solo archivo, pero los archivos grandes pueden volverse difíciles de navegar. Para solucionar esto, puedesexportarun componente a su propio archivo y luegoimportarese componente desde otro archivo:

¿Listo para aprender este tema?

LeeImportar y exportar componentespara aprender a dividir componentes en sus propios archivos.

Leer más

Escribir marcado con JSX

Cada componente de React es una función de JavaScript que puede contener algo de marcado que React renderiza en el navegador. Los componentes de React utilizan una extensión de sintaxis llamada JSX para representar ese marcado. JSX se parece mucho a HTML, pero es un poco más estricto y puede mostrar información dinámica.

Si pegamos un marcado HTML existente en un componente de React, no siempre funcionará:

Si tienes HTML existente como este, puedes arreglarlo usando unconvertidor:

¿Listo para aprender este tema?

LeeEscribir marcado con JSXpara aprender a escribir JSX válido.

Leer más

JavaScript en JSX con llaves

JSX te permite escribir marcado similar a HTML dentro de un archivo JavaScript, manteniendo la lógica de renderizado y el contenido en el mismo lugar. A veces querrás añadir un poco de lógica de JavaScript o hacer referencia a una propiedad dinámica dentro de ese marcado. En esta situación, puedes usar llaves en tu JSX para “abrir una ventana” a JavaScript:

¿Listo para aprender este tema?

LeeJavaScript en JSX con llavespara aprender cómo acceder a datos de JavaScript desde JSX.

Leer más

Pasar props a un componente

Los componentes de React usanpropspara comunicarse entre sí. Cada componente padre puede pasar cierta información a sus componentes hijos dándoles props. Los props pueden recordarte a los atributos HTML, pero puedes pasar cualquier valor de JavaScript a través de ellos, ¡incluyendo objetos, arrays, funciones e incluso JSX!

¿Listo para aprender este tema?

LeePasar props a un componentepara aprender cómo pasar y leer props.

Leer más

Renderizado condicional

Tus componentes a menudo necesitarán mostrar cosas diferentes dependiendo de distintas condiciones. En React, puedes renderizar JSX condicionalmente usando sintaxis de JavaScript comoifstatements,&&, y operadores? :.

En este ejemplo, se usa el operador&&de JavaScript para renderizar condicionalmente una marca de verificación:

¿Listo para aprender este tema?

LeeRenderizado condicionalpara aprender las diferentes formas de renderizar contenido condicionalmente.

Leer más

Renderizar listas

A menudo querrás mostrar múltiples componentes similares a partir de una colección de datos. Puedes usarfilter() y map()de JavaScript con React para filtrar y transformar tu array de datos en un array de componentes.

Para cada elemento del array, necesitarás especificar unakey. Normalmente, querrás usar un ID de la base de datos comokey. Las keys permiten a React rastrear la posición de cada elemento en la lista incluso si la lista cambia.

¿Listo para aprender este tema?

LeeRenderizado de listaspara aprender cómo renderizar una lista de componentes y cómo elegir una clave.

Leer más

Mantener los componentes puros

Algunas funciones de JavaScript sonpuras.Una función pura:

  • Se ocupa de sus propios asuntos.No cambia ningún objeto o variable que existiera antes de ser llamada.
  • Mismas entradas, misma salida.Dadas las mismas entradas, una función pura siempre debe devolver el mismo resultado.

Al escribir estrictamente tus componentes solo como funciones puras, puedes evitar toda una clase de errores desconcertantes y comportamientos impredecibles a medida que crece tu base de código. Aquí tienes un ejemplo de un componente impuro:

Puedes hacer que este componente sea puro pasando una prop en lugar de modificar una variable preexistente:

¿Listo para aprender este tema?

LeeMantener los componentes purospara aprender cómo escribir componentes como funciones puras y predecibles.

Leer más

Tu interfaz de usuario como un árbol

React utiliza árboles para modelar las relaciones entre componentes y módulos.

Un árbol de renderizado de React es una representación de la relación padre-hijo entre componentes.

Un gráfico de árbol con cinco nodos, donde cada nodo representa un componente. El nodo raíz está ubicado en la parte superior del gráfico de árbol y está etiquetado como 'Componente Raíz'. Tiene dos flechas que se extienden hacia abajo hasta dos nodos etiquetados 'Componente A' y 'Componente C'. Cada flecha está etiquetada con 'renderiza'. 'Componente A' tiene una única flecha 'renderiza' hacia un nodo etiquetado 'Componente B'. 'Componente C' tiene una única flecha 'renderiza' hacia un nodo etiquetado 'Componente D'.Un gráfico de árbol con cinco nodos, donde cada nodo representa un componente. El nodo raíz está ubicado en la parte superior del gráfico de árbol y está etiquetado como 'Componente Raíz'. Tiene dos flechas que se extienden hacia abajo hasta dos nodos etiquetados 'Componente A' y 'Componente C'. Cada flecha está etiquetada con 'renderiza'. 'Componente A' tiene una única flecha 'renderiza' hacia un nodo etiquetado 'Componente B'. 'Componente C' tiene una única flecha 'renderiza' hacia un nodo etiquetado 'Componente D'.

Un ejemplo de árbol de renderizado de React.

Los componentes cerca de la parte superior del árbol, cerca del componente raíz, se consideran componentes de nivel superior. Los componentes sin componentes hijos son componentes hoja. Esta categorización de componentes es útil para comprender el flujo de datos y el rendimiento del renderizado.

Modelar la relación entre módulos JavaScript es otra forma útil de entender tu aplicación. Nos referimos a ella como un árbol de dependencias de módulos.

Un gráfico de árbol con cinco nodos. Cada nodo representa un módulo JavaScript. El nodo superior está etiquetado como 'RootModule.js'. Tiene tres flechas que se extienden a los nodos: 'ModuleA.js', 'ModuleB.js' y 'ModuleC.js'. Cada flecha está etiquetada como 'importa'. El nodo 'ModuleC.js' tiene una única flecha 'importa' que apunta a un nodo etiquetado 'ModuleD.js'.Un gráfico de árbol con cinco nodos. Cada nodo representa un módulo JavaScript. El nodo superior está etiquetado como 'RootModule.js'. Tiene tres flechas que se extienden a los nodos: 'ModuleA.js', 'ModuleB.js' y 'ModuleC.js'. Cada flecha está etiquetada como 'importa'. El nodo 'ModuleC.js' tiene una única flecha 'importa' que apunta a un nodo etiquetado 'ModuleD.js'.

Un ejemplo de árbol de dependencias de módulos.

Un árbol de dependencias es utilizado a menudo por herramientas de construcción para agrupar todo el código JavaScript relevante para que el cliente lo descargue y renderice. Un tamaño de paquete grande perjudica la experiencia del usuario en las aplicaciones React. Comprender el árbol de dependencias de módulos es útil para depurar tales problemas.

¿Listo para aprender este tema?

LeeTu interfaz de usuario como un árbolpara aprender a crear árboles de renderizado y de dependencias de módulos para una aplicación React y cómo son modelos mentales útiles para mejorar la experiencia del usuario y el rendimiento.

Leer más

¿Qué sigue?

Dirígete aTu primer componentepara empezar a leer este capítulo página por página.

O, si ya estás familiarizado con estos temas, ¿por qué no leer sobreAgregar interactividad?