4GeeksAcademy / hchocobar-03-react-hello

11 stars 4 forks source link

4. Simple Counter Bonus #37

Open hchocobar opened 6 months ago

hchocobar commented 6 months ago

Check List

useEffect()

doc: https://es.react.dev/reference/react/useEffect

Time to Code: Simple Counter Bonus

Spain-50 Day 17

hchocobar commented 4 months ago

image


/* Simple Counter Bonus*/
.big-counter {
    text-align: center;
    background: black;
}

.big-counter div {
    display: inline-block;
    font-size: 60px;
    background: #161B22;
    border-radius: 5px;
    color: white;
    padding: 10px;
    margin: 3px;
}
hchocobar commented 4 months ago

Ejemplo simple de useEffect() con dependencias

    useEffect(() => {
        if (isRunning) {
            const newInterval = setInterval(() => {
                setCounter(counter => counter + 1);
            }, 10);

            return () => clearInterval(newInterval);
        }
    }, [isRunning]);

El return en la función dentro del hook useEffect() se utiliza para definir un 'cleanup' que es una función de limpieza que React ejecutará en dos situaciones principales:

  1. Cuando el componente se desmonte (unmount): Si el componente que utiliza este useEffect() deja de estar presente en la interfaz de usuario (por ejemplo, si navegas a otra página o si dejas de renderizar ese componente), React ejecutará la función de limpieza para asegurarse de que los efectos secundarios se detengan correctamente.
  2. Cada vez que alguna de las dependencias del useEffect() cambie: React ejecutará la función de limpieza antes de ejecutar de nuevo el useEffect().

En este caso específico, la función de limpieza se utiliza para detener el intervalo que se creó con setInterval() y de esta manera evitar la creación de múltiples intervalos innecesarios y para asegurarse de que el intervalo se limpie correctamente cuando ya no sea necesario

hchocobar commented 2 months ago

image