React Navigation

gyu0714·2022년 11월 14일
0

react-native

목록 보기
1/2
post-thumbnail

React Navigation

react-navigation는 화면을 설정할 수 있는 독립 실행형 라이브러리이다.

설치 방법은 아래와 같다.

npm install @react-navigation/native @react-navigation/native-stack
npm install react-native-screens react-native-safe-area-context

yarn add @react-navigation/native @react-navigation/native-stack
yarn add react-native-screens react-native-safe-area-context

iOS의 경우 Cocoapods가 설치되어있는지 확인하고 설치를 완료한다.

npx pod-install ios

전체 앱을 NavigationContainer로 감싸줘야한다.

// App.tsx
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';

const App = () => {
	return (
    	<NavigationContainer>
        	...
        </NavigationContainer>
    );
};

export default App;

각 컴포넌트들의 화면을 앱으로 만들 수 있다.

import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';

const Stack = createNativeStackNavigator();

const MyStack = () => {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen
          name="Home"
          component={HomeScreen}
          options={{ title: 'Welcome' }}
        />
        <Stack.Screen name="Profile" component={ProfileScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
};

options의 prop에서 각 화면의 제목과 옵션을 설정할 수 있다.
각 화면은 component React 구성 요소인 소품을 사용한다. 이러한 구성 요소는 navigation의 다른 화면에 연결할 수 있는 다양한 메서드가 있는 props를 받을 수 있다.

const HomeScreen = ({ navigation }) => {
  return (
    <Button
      title="Go to Jane's profile"
      onPress={() =>
        navigation.navigate('Profile', { name: 'Jane' })
      }
    />
  );
};
const ProfileScreen = ({ navigation, route }) => {
  return <Text>This is {route.params.name}'s profile</Text>;
};

native-stack은 네비게이터는 iOS의 UINavigationsController 및 안드로이드의 Fragment에서 기본 API를 사용하므로 빌드 된 createNativeStackNavigator가 해당 API 위에 기본적으로 빌드 된 앱과 동일하게 작동하고 동일한 성능 및 특성을 갖는다.

profile
gyu0714

0개의 댓글