🍌

Reactのカスタムフック (Custom Hooks) の実装例

2023/12/28に公開

「カスタムフック (Custom Hook)」とは、Reactにおける一つの概念で、状態管理(useState)や副作用(useEffect)のロジックを関数化し、これを複数のコンポーネントで再利用するために使われる。

Reactのカスタムフックの実装例: useCounter

// useCounter.ts
import { useState } from 'react';

const useCounter = (initialValue: number = 0) => {
  const [count, setCount] = useState(initialValue);

  const increment = () => setCount(count + 1);
  const decrement = () => setCount(count - 1);
  const reset = () => setCount(initialValue);

  return { count, increment, decrement, reset };
}

export default useCounter;

カスタムフックの使用例: CounterComponent

// CounterComponent.tsx
import React from 'react';
import useCounter from './useCounter';

const CounterComponent = () => {
  const { count, increment, decrement, reset } = useCounter(10);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
      <button onClick={decrement}>Decrement</button>
      <button onClick={reset}>Reset</button>
    </div>
  );
}

export default CounterComponent;

Discussion