React Fundamentals
Texto Leccion
Limpieza en useEffect
Funcion de limpieza (cleanup) Algunos efectos necesitan limpieza para evitar memory leaks. Retorna una funcion de useEffect para limpiar. Ejemplo: Timer function Timer() { const [seconds, setSeconds] = useState(0); useEffect(() => { const interval = setInterval(() => { setSeconds(s => s + 1); }, 1000); // Cleanup: se ejecuta al desmontar // o antes del proximo efecto return () => { clearInterval(interval); }; }, []); return <p>Segundos: {seconds}</p>; } Ejemplo: Event listener functi
Tiempo de estudio
12 Min
Funcion de limpieza (cleanup)
Algunos efectos necesitan limpieza para evitar memory leaks. Retorna una funcion de useEffect para limpiar.
Ejemplo: Timer
function Timer() {
const [seconds, setSeconds] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setSeconds(s => s + 1);
}, 1000);
// Cleanup: se ejecuta al desmontar
// o antes del proximo efecto
return () => {
clearInterval(interval);
};
}, []);
return <p>Segundos: {seconds}</p>;
}Ejemplo: Event listener
function WindowSize() {
const [size, setSize] = useState({
width: window.innerWidth,
height: window.innerHeight
});
useEffect(() => {
const handleResize = () => {
setSize({
width: window.innerWidth,
height: window.innerHeight
});
};
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
};
}, []);
return <p>{size.width} x {size.height}</p>;
}Ejemplo: Suscripcion
function ChatRoom({ roomId }) {
useEffect(() => {
const connection = createConnection(roomId);
connection.connect();
return () => {
connection.disconnect();
};
}, [roomId]);
return <div>Chat Room: {roomId}</div>;
}Cuando necesitas cleanup?
- Timers (setInterval, setTimeout)
- Event listeners
- Suscripciones (WebSocket, observers)
- Conexiones externas
Orden de ejecucion
useEffect(() => {
console.log('1. Efecto ejecutado');
return () => {
console.log('2. Cleanup ejecutado');
};
}, [dep]);
// Cuando 'dep' cambia:
// 1. Cleanup del efecto anterior
// 2. Nuevo efecto ejecutadoPractica de portfolio
Convierte esta leccion en evidencia real: arma una entrega pequena que puedas mostrar en una entrevista, en LinkedIn o en tu portfolio. Trabaja con un caso propio o con una empresa ficticia, pero deja claro el problema, la decision y el resultado.
- Entregable: una captura, documento, repositorio o tablero con el resultado final.
- Checklist: objetivo, pasos seguidos, criterio de calidad y mejora pendiente.
- Mini-rubrica: si otra persona lo revisa, debe entender que hiciste, por que y como repetirlo.
Texto Lessons
#1
Que es React?
#2
Creando componentes
#3
Introduccion a useState
#4
Introduccion a useEffect
#5
Configurando tu proyecto React
#6
Props: Pasando datos
#7
Actualizando estado correctamente
#8
Limpieza en useEffect
#9
JSX: HTML en JavaScript
#10
Children: Componentes contenedores
#11
Manejando multiples estados
#12
Patrones comunes de useEffect
#13
Quiz: Introduccion a React
Ver full lessons
Revisar curso learning pagina