Context 관련 기능 컴포넌트
Provider
- Context value 공급
- 트리 아래로 값 전파
Consumer
- Provider에서 준 값 읽어오기 (useContext 나오기 전 방식)
라우팅 기능 컴포넌트 (React Router)
이건 화면 이동/페이지 전환 라우팅 담당.
BrowserRouter / HashRouter
- 전체 앱에 라우팅 기능 제공
- 내부에서 History API 관리
Routes / Route
- 특정 경로에 어떤 컴포넌트를 보여줄지 결정
Link
- a 태그 대신 history.push 관리
이 컴포넌트들도 모두 “기능이 붙은 컴포넌트”
애니메이션/트랜지션 기능 컴포넌트
AnimatePresence, motion.div (Framer Motion)
- mount/unmount 애니메이션
- layout animation
- variants 관리
Transition (Headless UI / Radix)
- 사라질 때 transition주는 UI 컴포넌트
상태 관리 라이브러리 컴포넌트
Redux <Provider store={...}>
- Redux state를 React 트리에 연결함
Recoil <RecoilRoot>
- Recoil atom/store 관리
Zustand <Provider> (옵션)
이것도 기능이 있음 (상태 저장소 연결)
제어 기능이 있는 구조형 컴포넌트
ErrorBoundary
- 자식 컴포넌트에서 에러 발생하면 fallback UI 보여줌
Suspense
- Promise-based 로딩을 처리
- lazy-loaded 컴포넌트 기다리는 동안 fallback 띄움
Fragment
- DOM 안 만들고 레이아웃만 묶음
제공 컴포넌트(HOC 스타일 기능)
ThemeProvider
- Emotion / Styled-components의 테마 제공 기능
QueryClientProvider
- React Query 전역 Client 제공
ApolloProvider
- GraphQL Client 제공
Portal 컴포넌트
<Portal> (Radix UI 등)
- 렌더 트리 밖으로 DOM을 보내버리는 기능
- 모달, 토스트, 바텀시트에서 필수
UI 라이브러리 기능 컴포넌트
Modal, Dialog, Tooltip, Dropdown 등
Radix / HeadlessUI / MUI / Chakra UI 등의 기능성 컴포넌트들.
이들 대부분은 내부적으로:
- focus trap
- keyboard navigation
- ARIA accessibility
- 이벤트 관리
같은 기능이 들어 있음.
그럼 “기능이 있는 컴포넌트”의 정의는?
React 컴포넌트 중에서:
- UI만 리턴하는 단순한 컴포넌트가 아니라
- React의 트리/상태/컨텍스트/라우터/에러/애니메이션과 연동되는 역할을 가진 컴포넌트
이걸 “기능이 있는 컴포넌트”라고 부르면 딱
'STUDY > [ React ]' 카테고리의 다른 글
| 도서목록만들기(추가예정) (0) | 2025.11.28 |
|---|---|
| Component가 뭔가요? (0) | 2025.11.28 |
| 그래서 Context랑 Provider랑 Fiber가 무슨 상관인데 (1) | 2025.11.28 |
| React Fiber Node란? (0) | 2025.11.27 |
| 왜 리액트는 Hook을 순서 기반으로 설계했는가? (0) | 2025.11.27 |