custom hook은 특정 상태 관리를 재사용하기 위해 사용자 임의로 만드는 hook입니다. 동일한 상태 관리 로직을 여러 컴포넌트에서 사용해야 할 때 유용합니다.
custom hook 패턴 적용하기
목차
1. custom hook이란?
- 상태 관리, 변경 로직을 재사용하기 위한 사용자 정의 hook
- 여러 컴포넌트에서 동일한 상태 관리 로직을 사용할 때 유용
2. 특징
- "use"접두사 사용
- 작성한 custom hook은 "use" 접두사를 붙여 custom hook이라는 것을 명시
- 기존 react hook 결합 가능
- useState, useEffect 등 기존 hook과 결합하여 상태 관리 가능
- 재사용 용이
- 여러 컴포넌트에서 동일한 상태 관리 로직이 필요할 때 재사용 용이
- 전역 상태 관리와는 달리 여러 컴포넌트에서 동일한 상태를 유지할 필요가 없을 때 사용
- 전역 상태와 동일한 상태 관리 로직을 구분하여 생각할 것
- 유지 보수성 향상
- 하나의 상태에 대한 코드들을 모두 custom hook에서 관리하므로 문제 발생시 살펴봐야할 부분을 한정시킬 수 있음
3. 적용법
- "use" 접두사를 붙여 custom hook 파일 생성
- useState로 관리하고자 하는 상태 생성
- 상태 관리 함수 생성
- 외부에서 사용하고 하는 변수 반환
//useCounter.jsx
import React, { useState } from "react";
const useCounter = () => {
// 관리하고자 하는 상태 생성
const [count, setCount] = useState(0);
// 상태 관리 함수 생성
const handlePlus = () => {
setCount((prev) => prev + 1);
};
const handleMinus = () => {
setCount((prev) => prev - 1);
};
// 외부에서 사용하고자 하는 변수 반환
return { count, handlePlus, handleMinus };
};
export default useCounter;
- 해당 상태를 사용하고자 하는 컴포넌트에서 반환 값 할당 받아서 사용
import "./App.css";
import useCounter from "./customHooks/useCounter";
function App() {
// 반환 값 할당받기
const { count, handlePlus, handleMinus } = useCounter();
return (
<div className="App" style={{ display: "flex" }}>
<button onClick={handleMinus}>-</button>
{count}
<button onClick={handlePlus}>+</button>
</div>
);
}
export default App;
4. 적용된 코드로 보기
'react > 디자인 패턴' 카테고리의 다른 글
container presenter 패턴 알아보기 (0) | 2023.10.07 |
---|