Learn how to get started with routing and navigation in your Expo project.
Routing and navigation refer to organizing an app into different screens, mapping screens to URLs, moving between those screens, and displaying the appropriate platform-specific navigation-related user interface elements (for example, tabs, navigation bars, screen transition animations and gestures, and drawers). Navigation has very nuanced behavior on each platform and is extremely complicated to build entirely on your own, so you should always use a library to ensure that your app looks and behaves as users expect.
Expo Router brings the best routing concepts from the web to native Android and iOS apps. Every file in the app directory automatically becomes a route in your mobile navigation, making it easier than ever to build, maintain, and scale your project. It's built on top of our powerful React Navigation suite enabling truly native navigation. The entire deep linking system is automatically generated live, so users can share links to any route in your app.
To quickly get started with Expo Router, run the following command to create a project with
npx create-expo-app@latest -e with-router
For more in-depth information and guides about Expo Router, check out the documentation.
Yes, you can use Next.js routing for the web. You can read more about this in Using Next.js with Expo for Web.
Yes! React Navigation is one of the most popular navigation libraries in the React Native ecosystem. It is maintained by the Expo team and supports Android, iOS, and the web.
React Navigation includes support for common navigation patterns, and it's fully customizable so you can achieve any navigation pattern, even if it's not built into the library.
See the Getting started guide in React Navigation documentation for more information on how to get started.
This library is not available in the Expo Go app and is not yet compatible with
createNativeStackNavigator from React Navigation to use Android and iOS native navigation APIs.
Create links and handle incoming URL requests for your app.
Connect an app to a website to enable universal links and deep links.