Why Navigation Needs a Library

In a browser you get navigation for free: every page has a URL, the history stack remembers where you have been, and Back works. React Native 36,878 gives you only views. A native app's navigation needs code for each of these:

React Native once shipped Navigator in core; it was removed in 0.44 (2017), and the community's React Navigation 407,918 took over. Three libraries matter today, all MIT-licensed. Expo Router 6,418 57.0.23 turns files in src/app/ into screens and URLs; it is the default for new Expo 6,418 projects and BookNest's choice. React Navigation 7.4.1 declares navigators in components and fills most existing apps. Wix 630 's react-native-navigation (https://github.com/wix/react-native-navigation 13,176 ) 8.9.0 makes every screen a native root, with its own native setup and no Expo Go 6,418 support. The first two build stacks on react-native-screens 3,732 (https://github.com/software-mansion/react-native-screens 3,732 ), which makes each screen a native container.