엑스포 라우터
라우터 섹션에서 설명한 것과 같이 리엑트 네이티브에는 react-navigation, react-native-navigation 등 각종 라우터들이 있지만 저희 커뮤니티에서는 expo-router를 추천합니다. 이는 단순히 최신에 나온 라우터라서 그런 것은 아니고 파일 기반 라우터라서 불필요한 코드를 제거해줄 뿐만아니라 코드 자체도 간결해지고 직관적이기 때문입니다.
Expo Router은 Expo로 만들어진 Universal React Native 애플리케이션을 위한 파일 기반 라우터입니다. 이 라우터는 React Native 및 웹 애플리케이션에서 화면 간 이동을 관리할 수 있게 해주며, 사용자가 앱의 UI의 다른 부분으로 원활하게 이동할 수 있도록 합니다. 이를 통해 여러 플랫폼(Android, iOS 및 웹)에서 동일한 구성 요소를 사용하여 앱의 화면 간 이동을 관리할 수 있습니다.
Expo Router를 사용하는 방법에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
이 문서에서는 Expo Router를 사용하여 화면 간 이동을 관리하는 방법에 대해 설명합니다.
예를 들어, 다음 코드는 HomeScreen
과 ProfileScreen
사이를 이동하는 방법을 보여줍니다.
import { useNavigation } from '@react-navigation/native';
import { Button } from 'react-native';
function HomeScreen() {
const navigation = useNavigation();
return (
<Button
title="Go to Profile"
onPress={() => {
navigation.navigate('Profile', { name: 'Jane' });
}}
/>
);
}
function ProfileScreen({ route }) {
return <Text>This is {route.params.name}'s profile</Text>;
}
위 코드에서 useNavigation
훅을 사용하여 navigation
객체를 가져온 다음, Button
컴포넌트를 렌더링합니다.
onPress
핸들러에서 navigation.navigate
메서드를 호출하여 ProfileScreen
으로 이동합니다.
이 때, name
매개변수를 전달합니다. ProfileScreen
에서는 route.params.name
을 사용하여 name
매개변수를 가져옵니다.