React에서 커스텀 훅(custom hook)은 기본적으로 React 기능(상태 관리, 라이프사이클 이벤트 등)을 재사용하기 위한 메커니즘을 제공하는 함수다. 커스텀 훅은 React의 내장 훅(hooks)을 기반으로 하여 만들어지며, 로직을 모듈화하고 다양한 컴포넌트 간에 공유할 수 있도록 도와준다. 따라서 예전보다 React의 VAC 디자인 패턴을 사용도 적어졌다.
useState
, useEffect
, **useContext
**와 같은 React의 기본 훅을 사용하여 상태 관리, 사이드 이펙트 처리 등을 할 수 있다.eg.
// 커스텀 훅
function useCustomHook() {
const [state, setState] = useState(initialState);
// 여기에 로직 추가
return [state, someFunction];
}
// UI를 그리는 다른 컴포넌트
import React from 'react';
import { useCustomHook } from './path/to/useCustomHook';
function MyComponent() {
const [state, someFunction] = useCustomHook();
// 이제 state 값을 이 컴포넌트에서 사용할 수 있음
return (
<div>
{/* state 값을 UI에 표시하거나 다른 방식으로 사용 */}
{state}
</div>
);
}
React의 Custom Hook은 단순히 “Hook 로직을 재사용하기 위한 함수”이며, 각 컴포넌트가 이 Custom Hook을 호출할 때마다 별도의 상태를 갖게 된다. 즉, 동일한 Custom Hook을 여러 컴포넌트에서 사용하더라도, 각 컴포넌트마다 상태가 독립적으로 관리되며 공유되지 않는다.