const { useState, useEffect } = React;
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<span>{count}</span>
<button onClick={() => setCount(c => c - 1)}>−</button>
<button onClick={() => setCount(0)}>Reset</button>
<button onClick={() => setCount(c => c + 1)}>+</button>
</div>
);
}
function Clock() {
const [time, setTime] = useState(new Date());
useEffect(() => {
const id = setInterval(() => setTime(new Date()), 1000);
return () => clearInterval(id); // cleanup on unmount
}, []);
return <span>{time.toLocaleTimeString()}</span>;
}