Custom Hook을 활용한 CRUD 기능 구현
React에서는 Custom Hook을 사용하여 재사용 가능한 로직을 만들 수 있습니다. 이번 글에서는 Custom Hook을 활용하여 CRUD(Create, Read, Update, Delete) 기능을 구현하는 방법에 대해 알아보겠습니다.
1. useCRUD Custom Hook 생성
먼저, CRUD 작업을 위한 Custom Hook을 생성합니다. 이 Custom Hook은 상태 관리와 해당 상태를 변경할 수 있는 함수들을 제공할 것입니다.
import { useState } from 'react';
const useCRUD = () => {
const [data, setData] = useState([]);
const createData = (newData) => {
setData([...data, newData]);
};
const updateData = (id, updatedData) => {
const updatedList = data.map((item) => {
if (item.id === id) {
return { ...item, ...updatedData };
}
return item;
});
setData(updatedList);
};
const deleteData = (id) => {
const filteredList = data.filter((item) => item.id !== id);
setData(filteredList);
};
return {
data,
createData,
updateData,
deleteData,
};
};
export default useCRUD;
2. 사용 방법
이제 useCRUD Custom Hook을 사용하여 CRUD 기능을 구현해보겠습니다.
import React from 'react';
import useCRUD from './useCRUD';
const App = () => {
const { data, createData, updateData, deleteData } = useCRUD();
return (
<div>
<h1>CRUD Example</h1>
<button onClick={() => createData({ id: 1, name: 'John' })}>Create</button>
<ul>
{data.map((item) => (
<li key={item.id}>
{item.name}
<button onClick={() => updateData(item.id, { name: 'Updated' })}>Update</button>
<button onClick={() => deleteData(item.id)}>Delete</button>
</li>
))}
</ul>
</div>
);
};
export default App;
위의 예제에서는 useCRUD Custom Hook을 사용하여 데이터를 생성, 업데이트 및 삭제할 수 있습니다. data 배열은 생성한 데이터를 보여줍니다.
마무리
Custom Hook을 사용하면 여러 컴포넌트에서 재사용 가능한 로직을 쉽게 구현할 수 있습니다. CRUD 기능을 포함한 상태 관리 로직을 Custom Hook으로 추출하여 코드를 재사용하면 개발 생산성과 코드 유지보수에 도움이 됩니다.