유튜브블로그Top 10
내 프로필

데브허브 안내
소개업데이트 소식

데브허브 커뮤니티

[FE] 리액트 - 44강: 검색 필터 이렇게 만든다고?! Supabase eq 쿼리문 실전 사용법

구디사는 개발자 9Diin

2025. 10. 4.

0

#frontend
#db
  • 동적 UI 활성화 및 데이터 필터링 구현 목표: 앱 사이드바 메뉴 클릭 시 UI 활성화와 해당 카테고리 토픽만 조회하는 기능을 구현하는 것이 핵심 목표입니다. 🎯
  • useSearchParams 활용한 상태 관리: useState 대신 React Router DOM의 useSearchParams를 사용하여 URL 쿼리 스트링으로 카테고리 상태를 관리합니다. 이는 페이지 새로고침 시에도 상태를 유지하고 URL을 통해 공유 가능한 상태를 만드는 효과적인 방법입니다. 🔗
  • 쿼리 스트링 기반 카테고리 조회: searchParams.get('category') 메서드를 사용하여 URL에서 category 쿼리 파라미터 값을 가져와 현재 활성화된 카테고리를 결정합니다. 🔍
  • "전체" 메뉴 처리 로직: 카테고리 값이 없을 때(초기 로드 또는 "전체" 클릭 시) null 대신 빈 문자열("")을 사용하여 모든 토픽을 조회하도록 처리하며, URL에서 category 파라미터를 제거하여 "전체" 상태를 명확히 합니다. 🌐
  • 조건부 CSS 클래스 적용: 현재 선택된 카테고리와 메뉴의 카테고리가 일치할 경우에만 특정 CSS 클래스(예: 텍스트 색상, 배경색)를 동적으로 적용하여 활성화된 메뉴의 시각적 피드백을 제공합니다. ✨
  • Supabase eq 쿼리 실전 사용: 데이터 필터링을 위해 Supabase 쿼리에 eq('category', category) 조건을 동적으로 추가합니다. 카테고리 값이 유효할 때만 이 조건을 적용하여 특정 카테고리 토픽을 가져오고, 그렇지 않을 경우 모든 토픽을 가져옵니다. 📊
  • 재선택 시 불필요한 렌더링 방지: 이미 선택된 카테고리를 다시 클릭했을 때는 불필요한 상태 변경 및 재렌더링을 방지하기 위해 함수 초반에 return 처리하는 로직을 포함합니다. 🚫
  • 모듈화된 컴포넌트 간 데이터 전달: AppSidebar 컴포넌트에 category (현재 상태)와 setCategory (상태 변경 함수)를 props로 전달하여 부모 컴포넌트에서 자식 컴포넌트의 UI 및 상태를 제어하는 구조를 보여줍니다. 📤

Recommanded Videos