LoginSignup
1
0

reactでsetintervalを使用する方法

Posted at

Reactで setInterval を使用するには、いくつかの方法があります。

方法1:useEffect フックを使う

useEffect フックを使って、setInterval を呼び出すことができます。

const [count, setCount] = useState(0);

useEffect(() => {
  const interval = setInterval(() => {
    setCount(count => count + 1);
  }, 1000);

  return () => clearInterval(interval);
}, []);

return (
  <h1>{count}</h1>
);

コードは注意してご使用ください。

方法2:useInterval カスタムフックを使う

useInterval カスタムフックを使って、setInterval のロジックをカプセル化することができます。

import { useInterval } from 'react-use';

const App = () => {
  const [count, setCount] = useState(0);
  const { interval, clearInterval } = useInterval(() => {
    setCount(count => count + 1);
  }, 1000);

  return (
    <div>
      <h1>{count}</h1>
      <button onClick={clearInterval}>Stop</button>
    </div>
  );
};

コードは注意してご使用ください。

方法3:setInterval を直接呼び出す

useEffect フックや useInterval カスタムフックを使わずに、setInterval を直接呼び出すこともできます。

const App = () => {
  const [count, setCount] = useState(0);

  const interval = setInterval(() => {
    setCount(count => count + 1);
  }, 1000);

  useEffect(() => {
    return () => clearInterval(interval);
  }, []);

  return (
    <h1>{count}</h1>
  );
};

コードは注意してご使用ください。
これらの方法は、それぞれ異なる利点と欠点があります。状況に応じて最適な方法を選択してください。

その他

setInterval を使用するときは、以下の点に注意する必要があります。

  • メモリリークを防ぐために、clearInterval を呼び出す
  • コンポーネントがアンマウントされるときに、setInterval をクリアする
  • パフォーマンスの問題を防ぐために、setInterval の間隔を適切に設定する
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0