기술 블로그
React Navigation의 Bottom Tab Navigator 아이콘 동작 원리 살펴보기 본문
반응형
React Native 앱을 개발하다 보면 하단 탭 네비게이션을 구현할 일이 많은데요. 이번에는 React Navigation의 Bottom Tab Navigator에서 탭 아이콘이 어떻게 동작하는지 자세히 살펴보려고 합니다.
기본 구현 방식
Bottom Tab Navigator에서 각 탭의 아이콘은 다음과 같이 구현됩니다:
<Tab.Screen
name="Map"
component={MapScreen}
options={{
title: '부스찾기',
tabBarIcon: ({color, size}) => (
<MaterialCommunityIcons
name="map-marker-check-outline"
size={size}
color={color}
/>
),
}}
/>
여기서 주목할 점은 tabBarIcon
이 함수라는 것입니다. 이 함수는 color
와 size
두 가지 파라미터를 받아서 아이콘 컴포넌트를 반환합니다.
색상 처리 방식
탭 아이콘의 색상은 탭의 활성화 상태에 따라 자동으로 변경됩니다. 이는 Navigator 설정에서 정의한 색상값을 기반으로 동작합니다:
<Tab.Navigator
screenOptions={{
tabBarActiveTintColor: colors.tab.active, // 활성 상태 색상
tabBarInactiveTintColor: colors.tab.inactive, // 비활성 상태 색상
}}
>
React Navigation은 내부적으로 현재 선택된 탭을 추적하고 있다가:
- 탭이 선택되면 →
tabBarActiveTintColor
값을 - 선택되지 않은 탭은 →
tabBarInactiveTintColor
값을
tabBarIcon
함수의 color
파라미터로 전달합니다.
크기(size) 파라미터
size
파라미터는 React Navigation이 제공하는 기본값(24)을 사용합니다. 이 값은 대부분의 경우 모바일 UI에 적절한 크기로 설정되어 있어 별도의 수정 없이도 잘 작동합니다.
실제 동작 흐름
전체적인 동작 흐름을 정리하면 다음과 같습니다:
- 탭이 처음 렌더링될 때 React Navigation이
tabBarIcon
함수를 호출 - 사용자가 탭을 선택할 때마다:
- 선택된 탭 →
tabBarActiveTintColor
색상으로 다시 렌더링 - 다른 탭들 →
tabBarInactiveTintColor
색상으로 다시 렌더링
- 선택된 탭 →
- 각 렌더링마다 기본
size
값(24)이 전달됨
마치며
이렇게 React Navigation은 선언적인 방식으로 탭 아이콘의 상태 관리를 자동화해주고 있습니다. 개발자는 각 상태에 대한 스타일만 정의해두면, 실제 상태 변화에 따른 UI 업데이트는 React Navigation이 알아서 처리해주죠.
이러한 방식은 코드의 가독성을 높이고 상태 관리에 대한 부담을 줄여주어, 더 효율적인 개발을 가능하게 합니다.
반응형
'프론트엔드' 카테고리의 다른 글
react-native-cli 패키지명 변경 (0) | 2025.02.27 |
---|---|
정적 파일 복사 문제 해결 방법 (2) | 2024.11.29 |
React SPA에서 404 오류 해결하기: `serve`를 활용한 정적 서버 설정 (3) | 2024.11.18 |
esbuild와 svgr 설정으로 SVG 파일 번들 최적화하기 (3) | 2024.11.11 |
폰트 경량화를 통한 빌드 파일 경량화 (2) | 2024.11.06 |
Comments