¿Qué es la elevación de estado en React?

| Última modificación: 15 de marzo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si estás adentrándote en el emocionante mundo de React, seguramente te habrás topado con el término elevación de estado en React en más de una ocasión. En este artículo, vamos a comprender a fondo qué es la elevación de estado en React y cómo puede impactar positivamente en tus aplicaciones web. Prepárate para desentrañar este concepto y mejorar tus habilidades de desarrollo web.

¿Qué es la elevación de estado en React?

La elevación de estado en React es un patrón de diseño que le permite a los componentes compartir y modificar datos entre sí. En esencia, se trata de mover el estado de un componente a un ancestro común en la jerarquía de componentes, de modo que múltiples componentes puedan acceder y modificar ese estado compartido.

En React, los componentes son la unidad básica de construcción de una interfaz de usuario. Cada componente puede tener su propio estado y propiedades. El estado se refiere a los datos que un componente puede mantener y modificar a lo largo de su ciclo de vida. Por otro lado, las propiedades (props) son datos que se pasan de un componente padre a un componente hijo.

Comprender el flujo de datos con ejemplos

Para ilustrar la elevación de estado en React, consideremos un ejemplo práctico. Supongamos que estamos desarrollando una aplicación de conversión de temperatura. Tenemos dos componentes: TemperatureInput y Calculator.

Componente TemperatureInput

El componente TemperatureInput representa un campo de entrada donde el usuario puede ingresar una temperatura en grados Celsius o Fahrenheit. Este componente tiene su propio estado para mantener el valor de la temperatura y la escala en la que se encuentra.

class TemperatureInput extends React.Component { 
constructor(props) { 
super(props); 
this.state = { temperature: '', scale: 'c' }; 
} 
// ... 
}

Componente Calculator

El componente Calculator es el componente principal que contiene ambas entradas de temperatura (en Celsius y Fahrenheit) y muestra el resultado de la conversión.

class Calculator extends React.Component { 
// ... 
render() { 
return ( 
<div> 
<TemperatureInput scale="c" />
 <TemperatureInput scale="f" /> 
{/* ... */} </div> 
); 
} 
}

En este punto, ambos componentes TemperatureInput tienen su propio estado. Pero ¿cómo podemos lograr que compartan su estado para que cuando el usuario modifique una entrada, la otra se actualice automáticamente? Aquí es donde entra en juego la elevación de estado.

Elevando el estado compartido

Para lograr la elevación de estado, debemos mover el estado del componente TemperatureInput al componente Calculator, que actuará como el ancestro común. El componente Calculator mantendrá el estado compartido y pasará los valores relevantes como propiedades a cada instancia de TemperatureInput.

class Calculator extends React.Component { 
constructor(props) { 
super(props); 
this.state = { temperature: '', scale: 'c' }; 
} 
// ...
 render() { 
return (
 <div>
 <TemperatureInput 
scale="c" 
temperature={this.state.temperature} 
onTemperatureChange={this.handleCelsiusChange} 
/>
 <TemperatureInput 
scale="f" 
temperature={this.state.temperature} 
onTemperatureChange={this.handleFahrenheitChange}
 /> 
{/* ... */}
 </div> 
); 
} 
}

Ahora, cada instancia de TemperatureInput recibe las propiedades temperature y onTemperatureChange desde el componente Calculator. Cuando el usuario modifica una entrada, se llama a la función correspondiente (handleCelsiusChange o handleFahrenheitChange) en el componente Calculator, que actualiza el estado compartido y, a su vez, provoca la actualización de ambas entradas.

Ventajas de la elevación de estado en React

La elevación de estado en React ofrece varias ventajas significativas:

  • Mantenimiento simplificado: Al tener un único punto de control para el estado compartido, el código se vuelve más mantenible y menos propenso a errores.
  • Comunicación entre componentes: Facilita la comunicación entre componentes que no tienen una relación directa de padre a hijo en la jerarquía de componentes.
  • Reutilización de componentes: Permite la reutilización de componentes más fácilmente, ya que los componentes pueden funcionar de manera independiente y recibir datos a través de sus propiedades.

La elevación de estado en React es un concepto fundamental que te permitirá crear aplicaciones web más eficientes y mantenibles. Al comprender cómo compartir y actualizar el estado entre componentes, podrás diseñar interfaces de usuario más poderosas y dinámicas.

En el ejemplo de la conversión de temperatura, hemos visto cómo mover el estado compartido al componente Calculator permite que las instancias de TemperatureInput se actualicen de manera sincronizada. Esto es solo un vistazo a las posibilidades que ofrece React en términos de gestión de estado y comunicación entre componentes.

Continúa aprendiendo en KeepCoding

Si estás ansioso por aprender más sobre React y otras tecnologías de desarrollo web, considera unirte al Desarrollo Web Full Stack Bootcamp de KeepCoding. En este bootcamp, no solo profundizarás en React, sino que también adquirirás habilidades esenciales para convertirte en un profesional de la industria tecnológica. La industria IT ofrece salarios altos y una estabilidad laboral que otros sectores no pueden igualar. ¡Apúntate ya y no pierdas la oportunidad de cambiar tu vida y unirte a la revolución tecnológica!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado