Native Stack Navigator: Native Performance, Less Customization

Native Stack Navigator uses the OS's built-in screen management for smooth, performant transitions. Use it for standard screen stacks where a native look and feel is key.
Why it exists
React Native apps need to manage screen transitions. While this can be done purely in JavaScript, it often feels less fluid than a truly native app. Native Stack Navigator was created to bridge this gap by using the platform's own highly-optimized navigation components for superior performance.
The mental model
Think of Native Stack Navigator as a direct line to the device's own screen management system. Each new screen is a native view placed on top of a stack. When you navigate, you're telling iOS or Android to push a new view using its own code, not just re-rendering a JavaScript component. This is why its animations and gestures feel so fluid.
How it works
Instead of re-implementing navigation logic in JavaScript, this navigator delegates the work to the underlying native platform. It uses UINavigationController on iOS and Fragment on Android. This means the animations, gestures like swiping back, and overall behavior are handled by the OS, not the React Native JavaScript thread, leading to better performance.
When to use it
Use Native Stack Navigator as your default choice for screen stacks. It provides the best performance and a look and feel that matches platform conventions out of the box. It's ideal for apps that prioritize a native user experience and want access to native-only features like large titles on iOS and form sheet modals.
When not to use it
Avoid Native Stack Navigator if you need highly customized screen transitions or header behaviors not supported by the native iOS or Android APIs. Because it's a wrapper around native components, its customizability is limited. For those cases, the JavaScript-based Stack Navigator (@react-navigation/stack) offers more flexibility.
One canonical example
To set up a basic stack, you import createNativeStackNavigator and define your screens. A stack with a 'Home' screen and a 'Profile' screen would look like this:
import { createNativeStackNavigator } from '@react-navigation/native-stack';
const Stack = createNativeStackNavigator();
function AppStack() { return (<Stack.Navigator><Stack.Screen name="Home" component={HomeScreen} /><Stack.Screen name="Profile" component={ProfileScreen} /></Stack.Navigator>); }This creates a navigator where you can move from Home to Profile, which gets placed on top of the stack with a native transition.
Interview question
In which scenario would Native Stack Navigator be the least suitable choice for screen navigation?
- a.An app aiming for a native look and feel on both iOS and Android.
- b.An app prioritizing the most fluid and performant user experience.
- c.An app that needs to display standard stack-based navigation.
- d.An app requiring highly customized screen transition animations.Correct
Why? this is the answer
The card explicitly states to avoid Native Stack Navigator if highly customized screen transitions are needed, as its customizability is limited due to being a wrapper around native components. The other options describe scenarios where Native Stack Navigator is the recommended or default choice.
Just read this? Test yourself on what you have been reading.
Read the original → reactnavigation.org
You just looked this up. Could you explain it out loud?
That is the part interviews actually test. Tezvyn takes questions like this one and gives you what the interviewer is really checking, the answer that lands, and the mistake that ends the conversation, in the four minutes before your next meeting.
The iPhone app is on the way
We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.
Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.
We are hiring for this. Open roles that interview on react native — each one lists the topics its interview covers.
See open roles