Custom Hook을 이용한 컴포넌트 상태 관리

React에서 컴포넌트의 상태 관리는 중요한 요소 중 하나입니다. 이를 위해 React는 useState나 useEffect와 같은 훅을 제공합니다. 그러나, 더 복잡한 로직이나 공통된 상태 관리 기능을 재사용하고 싶다면 어떻게 해야 할까요? 이때 Custom Hook을 사용할 수 있습니다.

Custom Hook이란?

Custom Hook은 React의 훅을 사용하여 로직을 재사용할 수 있는 함수입니다. 기본적으로 다른 훅을 조합하여 사용하는 것이 일반적이지만, 필요에 따라 다른 로직도 포함할 수 있습니다.

Custom Hook 사용하기

Custom Hook을 사용하려면 아래와 같이 함수를 작성합니다.

import { useState } from 'react';

function useCustomHook() {
  const [state, setState] = useState(initialState);

  // 상태나 로직을 사용하는 코드

  return [state, setState];
}

위와 같이 Custom Hook 함수를 작성한 후, 해당 Hook을 사용하고자 하는 컴포넌트에서 호출할 수 있습니다.

function Component() {
  const [state, setState] = useCustomHook();

  // state와 setState 사용

  return (
    // JSX 코드
  );
}

Custom Hook 예시

아래는 간단한 Custom Hook 예시입니다. 이 Custom Hook은 입력되는 초기값에 따라 색상을 변경하고, 클릭 이벤트 핸들러를 제공합니다.

import { useState } from 'react';

function useColorChanger(initialColor) {
  const [color, setColor] = useState(initialColor);

  function handleClick() {
    const newColor = color === 'red' ? 'blue' : 'red';
    setColor(newColor);
  }

  return [color, handleClick];
}

위의 Custom Hook을 사용하여 컴포넌트에서 상태 관리를 할 수 있습니다.


function App() {
  const [color, handleClick] = useColorChanger('red');

  return (
    <div>
      <button style={{ backgroundColor: color }} onClick={handleClick}>
        Change Color
      </button>
    </div>
  );
}

위의 예시에서는 useColorChanger Hook을 사용하여 컴포넌트에서 색상을 변경하고, 클릭 이벤트 핸들러를 제공하였습니다.

Custom Hook의 장점

Custom Hook을 사용하면 컴포넌트의 로직을 추상화하여 재사용 가능하게 만들 수 있습니다. 이는 코드를 더 간결하고 읽기 쉽게 만들어줍니다. 또한, Custom Hook은 테스트하기 쉽고, 캡슐화하여 로직을 숨길 수 있는 장점도 있습니다.

결론

React에서 상태 관리는 중요한 요소입니다. Custom Hook을 사용하면 로직을 추상화하여 재사용할 수 있고, 코드를 더 간결하게 만들 수 있습니다. 이로써 컴포넌트의 상태 관리를 보다 효율적이고 유지보수하기 쉽게 할 수 있습니다.

#React #CustomHook