8.1-¿Qué es el estado (state) en React?-27. Que son los hooks
Estado y Ciclo de Vida en React
📌 ¿Qué es el Estado (State) en React?
El estado es el corazón dinámico de los componentes de React. Es un sistema que permite:
🗃️ Almacenar datos que pueden cambiar durante la vida del componente
🔄 Actualizar la UI automáticamente cuando estos datos cambian
⚡ Manejar interactividad (formularios, contadores, modales, etc.)
Ejemplo Práctico: Contador
import { useState } from 'react';
function Contador() {
const [contador, setContador] = useState(0); // Estado inicial: 0
return (
<div>
<p>Clics: {contador}</p>
<button onClick={() => setContador(contador + 1)}>
Incrementar
</button>
</div>
);
}🔹 Cómo funciona:
useState(0)inicializa el estado con valor0contadorcontiene el valor actualsetContadores la función para actualizarloCada actualización vuelve a renderizar el componente
🔄 Montaje y Desmontaje de Componentes
Ciclo de Vida Básico
| Fase | Qué ocurre | Código equivalente |
|---|---|---|
| Montaje | El componente se crea y añade al DOM | useEffect(() => {}, []) |
| Actualización | El componente se actualiza (por cambios en props/state) | useEffect(() => {}) |
| Desmontaje | El componente se elimina del DOM | useEffect(() => { return () => {} }, []) |
Ejemplo con Efectos
import { useEffect } from 'react';
function Reloj() {
useEffect(() => {
// 1️⃣ Se ejecuta al MONTAR
const intervalo = setInterval(() => {
console.log('Tick');
}, 1000);
// 2️⃣ Función de limpieza al DESMONTAR
return () => clearInterval(intervalo);
}, []);
return <div>Reloj activo (ver consola)</div>;
}🧠 Relación entre Estado y Renderizado
Diferencias Clave
| Concepto | ¿Qué hace? | ¿Cuándo ocurre? |
|---|---|---|
| Montaje | Crea e inserta el componente | Primera vez que se usa |
| Renderizado | Dibuja/actualiza la UI | Por cambios en props/state |
| Desmontaje | Elimina el componente | Al cambiar de ruta o condición |
Flujo Típico
Montaje inicial → Renderizado inicial
Actualización de estado → Nuevo renderizado
Desmontaje → Limpieza de efectos
💡 Mejores Prácticas
Estado Local vs Global:
Usa
useStatepara datos de un componenteUsa Context/Redux para datos compartidos
Optimización:
// Evita recrear funciones en cada render const incrementar = useCallback(() => { setContador(c => c + 1); }, []);Limpieza Obligatoria:
Siempre limpia suscripciones, timers y eventos en el desmontaje
📚 Ejemplo Avanzado: Formulario Controlado
function Formulario() {
const [form, setForm] = useState({
nombre: '',
email: ''
});
const handleChange = (e) => {
setForm({
...form,
[e.target.name]: e.target.value
});
};
return (
<form>
<input
name="nombre"
value={form.nombre}
onChange={handleChange}
/>
<input
name="email"
value={form.email}
onChange={handleChange}
/>
</form>
);
}🔍 ¿Por qué es importante entender esto?
Estado: Maneja la interactividad de tu app
Ciclo de vida: Previene memory leaks y optimiza rendimiento
Renderizado: Entender cuándo y por qué se actualiza la UI
¿Qué son los Hooks en React? 🚀
¿Te imaginas construir una aplicación web sin complicaciones y con un código más limpio? ¡Los Hooks de React hacen eso posible! 🔥
📌 ¿Qué son?
Los Hooks son funciones especiales que nos permiten "enganchar" características de React (como el estado o el ciclo de vida) en componentes funcionales. ¡Sí, sin clases! 💡
👉 ¿Por qué son importantes?
Simplifican el código.
Eliminan la necesidad de clases.
Mejoran la reutilización de la lógica.
🚂 Metáfora del Tren
Imagina tu app como un tren:
Locomotora (index.html): El núcleo que arrastra todo.
Vagones (componentes): Cada parte de tu app (como botones, likes, etc.).
Los Hooks son los ganchos que conectan cada vagón (componente) al tren (app) sin recargar toda la página.
💡 Ejemplo práctico:
Cuando das like en Facebook, solo se actualiza ese botón (¡no toda la página!). Eso es gracias a los Hooks trabajando detrás.
🔗 ¿Te gustó? ¡Dale like y sigue nuestra página para más memes de programación 100% originales! 😆
#React #Hooks #Frontend #Programación
✨ Tips extra:
Usa
useStatepara manejar estado.useEffectreemplaza ciclos de vida.¡Los Hooks son desde React 16.8!
¿Qué Hook te gustaría aprender primero? ¡Déjalo en los comentarios!
Comentarios
Publicar un comentario