useEffect example

This commit is contained in:
e560248
2025-04-07 11:22:03 +02:00
parent 88af8b80cc
commit c9f72a8902
2 changed files with 28 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
import './App.css' import './App.css'
import EffectExercises from './components/exercises/EffectExercises'
import Heading from './components/globals/Heading' import Heading from './components/globals/Heading'
import MainLayout from './layouts/MainLayout' import MainLayout from './layouts/MainLayout'
@@ -6,6 +7,7 @@ function App() {
return <MainLayout> return <MainLayout>
<Heading /> <Heading />
<EffectExercises />
</MainLayout> </MainLayout>
} }

View File

@@ -0,0 +1,26 @@
import { useEffect, useState } from "react"
export default function EffectExercises() {
const [counter, setCounter] = useState(0);
useEffect(() => {
console.log("EffectExercises mounted");
const interval = setInterval(() => {
setCounter(prevCounter => prevCounter + 1);
}
, 1000);
return () => {
console.log("EffectExercises unmounted");
clearInterval(interval);
}
}, [counter]);
return (
<section>
<h2>Effect Exercises</h2>
<p>Counter: {counter}</p>
<button onClick={() => setCounter(0)}>Reset</button>
</section>
)
}