Custom Hook을 사용한 데이터 필터링 기능 추가
데이터 필터링은 웹 애플리케이션에서 매우 중요한 기능 중 하나입니다. 사용자가 원하는 조건에 맞는 데이터만을 표시하는 기능을 제공함으로써 사용자 경험을 향상시킬 수 있습니다. 이번 블로그 포스트에서는 React에서 Custom Hook을 사용하여 데이터 필터링 기능을 추가하는 방법에 대해 알아보겠습니다.
Custom Hook 만들기
우선, 데이터를 필터링하기 위해 Custom Hook을 만들어야 합니다. 아래는 간단한 예제 코드입니다.
import { useState, useEffect } from 'react';
const useDataFilter = (initialData) => {
const [data, setData] = useState(initialData);
const [filteredData, setFilteredData] = useState(initialData);
const [filter, setFilter] = useState('');
useEffect(() => {
const filtered = data.filter(item => item.toLowerCase().includes(filter.toLowerCase()));
setFilteredData(filtered);
}, [data, filter]);
const handleFilterChange = (e) => {
setFilter(e.target.value);
}
return { filteredData, handleFilterChange };
}
export default useDataFilter;
위의 코드는 useDataFilter
라는 Custom Hook을 정의한 것입니다. 이 Hook은 필터링된 데이터와 필터링 조건을 변경하는 함수를 반환합니다.
Hook 사용하기
이제 사용자는 Custom Hook을 사용하여 데이터 필터링 기능을 구현할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
import useDataFilter from './useDataFilter';
const DataList = ({ data }) => {
const { filteredData, handleFilterChange } = useDataFilter(data);
return (
<div>
<input type="text" onChange={handleFilterChange} placeholder="Filter data" />
<ul>
{filteredData.map(item => (
<li key={item}>{item}</li>
))}
</ul>
</div>
);
}
export default DataList;
위 코드에서는 useDataFilter
Hook을 사용하여 데이터를 필터링하고, 사용자가 입력한 필터 조건에 맞게 데이터를 표시합니다. 사용자는 input
요소를 통해 필터 조건을 변경할 수 있습니다.
결론
Custom Hook을 사용하여 데이터 필터링 기능을 구현하는 방법을 살펴보았습니다. 이를 통해 사용자가 원하는 데이터만을 표시함으로써 애플리케이션의 사용자 경험을 향상시킬 수 있습니다. Custom Hook은 React에서 유용한 패턴 중 하나이므로, 적절한 상황에서 활용해 보시기 바랍니다.
[참고 자료]