바로 직전 포스트로 Stack을 통해 페이지를 작성해보는 작업을 진행하였다.
해당 내용은 이쪽에서~
그런데 여기서 한 가지 의문이 들 것이다그래서 Stack이 뭔데?
따라서 해당 포스트에선 Navigation과 Stack의 개념에 대해 알아볼 예정이다.
Stack을 사용하기 전 가장 먼저 알아야 하는 개념이 바로 이 녀석이다.
Navigation이란, 간단히 말해서 앱에서 화면 간의 이동을 관리하는 기능이다.
Getting started | React Navigation
navigation 라이브러리를 사용하기 위해선 다음과 같은 기능을 설치해야 한다.
1) 패키지 설치하기
// 패키지 설치
npm install @react-navigation/native
2) 라이브러리 관리
npx expo install react-native-screens react-native-safe-area-context
3) 코드 변경하기
import * as React from "react";
import { NavigationContainer } from "@react-navigation/native";
export default function App() {
return (
<NavigationContainer>
<View style={styles.container}>
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
</NavigationContainer>
);
}
다음과 같이 코드를 변경하면, 이제 navigation을 사용할 준비가 완료되었다.
navigetor는 Stack(스택)의 개념으로 화면을 관리한다.
즉, navigation을 통해 넘어가는 각 페이지를 stack으로 관리하는 것이다.
💡 Tab bar를 만들어 보면서 다양한 기능들을 알아보자.
먼저, stack을 사용하기 위해서 다음을 설치한다.
npm install @react-navigation/native-stack
그 다음, 메인 페이지가 될 곳에 다음과 같이 코드를 작성한다.
const stack = createNativeStackNavigator();
이 코드는 navigation 상 존재하는 페이지를 Stack으로 관리할 수 있게 해준다.
import HomeScreen from "./screens/HomeScreen";
// screens 폴더에 HomeScreen.js 파일을 만들어 관리할 예정이다.
const Stack = createNativeStackNavigator();
export default function App() {
return (
<NavigationContainer>
<Stack.Screen
name="Home"
component={HomeScreen}
options={{
title: "Home",
headerTitleAlign: "center",
}}
/>
이처럼, navigation으로 사용할 페이지는 Stack.Screen 태그를 통해 작성해줄 수 있디.
Stack은...
으로 이루어져 있다.
Screen을 사용하기 위해서 다음과 같이 Navigator로 감싸준다.
<Stack.Navigator
initialRouteName="Home">
<Stack.Screen
name="Home"
component={HomeScreen}
options={{
title: "Home",
headerTitleAlign: "center",
}}
/>
</Stack.Navigator>
3) Screen
스크린 Component는 몇 가지 Props를 받아온다.
그 중 가장 자주 사용되는 몇 가지만 살펴본다.
pop
- 뒤로 가기를 구현할 수 있는 Props
- 이전 화면으로 이동된다.
popTop
- 뒤로 가기 기능 ⇒ 이전 화면이 아닌 Home 화면으로 이동한다.
이렇게 Navigation과 Stack에 대해 알아보았다. 이제 화면 로직에 대해 알아보았으니 본격적으로 화면을 그려볼 차레다!
또 다른 포스트로 찾아오겠다...