React에서 훅(hook)은 함수형 컴포넌트에서 상태(state)와 생명주기(lifecycle) 기능을 사용할 수 있게 해주는 강력한 도구입니다. 그 중에서도 커스텀 훅은 코드의 재사용성을 높이고 로직을 모듈화하는 데 매우 유용합니다. 이번 포스트에서는 커스텀 훅의 개념, 생성 방법, 그리고 활용 사례를 자세히 살펴보겠습니다.
커스텀 훅은 사용자 정의 훅으로, 기본 훅인 useState, useEffect, useContext 등을 활용하여 새로운 훅을 만들어내는 것입니다. 커스텀 훅은 로직을 캡슐화하고, 여러 컴포넌트에서 쉽게 재사용할 수 있도록 돕습니다.
커스텀 훅은 일반 함수처럼 정의하며, 함수 이름은 use로 시작해야 합니다. 이는 React의 규칙을 따르는 것이며, 이 규칙을 통해 해당 함수가 훅이라는 것을 명확히 합니다.
필요에 따라 기본 훅을 사용하여 상태를 관리하거나 사이드 이펙트를 처리합니다.
컴포넌트에서 사용할 수 있도록 필요한 값이나 함수를 반환합니다.
아래는 간단한 카운터 기능을 제공하는 커스텀 훅 useCounter의 예입니다.
import { useState } from 'react';
function useCounter(initialValue = 0) {
const [count, setCount] = useState(initialValue);
const increment = () => setCount(c => c + 1);
const decrement = () => setCount(c => c - 1);
const reset = () => setCount(initialValue);
return { count, increment, decrement, reset };
}
이제 useCounter 훅을 React 컴포넌트에서 사용할 수 있습니다.
import React from 'react';
import useCounter from './useCounter';
function 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>
);
}
React의 커스텀 훅은 복잡한 상태와 로직을 효과적으로 관리하고, 코드의 재사용성을 높여주는 훌륭한 도구입니다. 이번 포스트를 통해 커스텀 훅을 만드는 방법과 그 이점을 이해하는 데 도움이 되었기를 바랍니다. 실제 프로젝트에 적용해 보시고, 효율적인 React 개발을 경험해 보세요!