ClaudeExpoMay 28, 2026, 2:00 PM

Expo Router v56: Decoupling from React Navigation

A condensed section focused on the key takeaways first.

Original Post

Quick Digest

Summary

A condensed section focused on the key takeaways first.

claudeen

Expo Router v56: Decoupling from React Navigation Summary

Key Points

  • Point 1: Expo Router v56 is the biggest shift to the library since it launched.
  • Point 2: We've forked the parts of React Navigation that Expo Router builds on, shipped streaming server-side rendering, and brought Android closer to feature parity with iOS through a new
  • Point 3: The fork is the headline change, and it's worth explaining first because it touches every Expo Router app.

Summary

This is an English summary of "Expo Router v56: Decoupling from React Navigation" published on 2026-05-28.

Key Points

  • Point 1: Expo Router v56 is the biggest shift to the library since it launched.
  • Point 2: We've forked the parts of React Navigation that Expo Router builds on, shipped streaming server-side rendering, and brought Android closer to feature parity with iOS through a new
  • Point 3: The fork is the headline change, and it's worth explaining first because it touches every Expo Router app.

Full Translation

Translations

A translation section that keeps the flow of the original article.

claudeja

Expo Router v56: Decoupling from React Navigation(原文タイトル)

概要

公開日: 2026-05-28 翻訳生成に失敗したため、原文をそのまま保存しています。

原文

Expo Router v56 is the biggest shift to the library since it launched. We've forked the parts of React Navigation that Expo Router builds on, shipped streaming server-side rendering, and brought Android closer to feature parity with iOS through a new toolbar API and expanded Native Tabs. The fork is the headline change, and it's worth explaining first because it touches every Expo Router app. After that we'll walk through the new SSR APIs, the Android toolbar, and what's new in Native Tabs. Why did we decide to fork React Navigation? Expo has a long history with React Navigation. Brent Vatne, the longest tenured Expo employee and our VP of Engineering, led the project through the 1.0 and 2.0 releases, working alongside @ericvicenti and @satya164. Expo helped grow React Navigation from an early idea, shaped by React Native’s old NavigationExperimental API and Expo’s own ex-navigation, into the standard navigation library for the React Native ecosystem. Today, it remains one of the ecosystem’s core navigation solutions, alongside Expo Router. React Navigation is now in Satya’s very capable hands, while our work in the navigation space has increasingly centered on Expo Router. As Expo Router has grown, we’ve found ourselves needing deeper control over the React Navigation internals that Expo Router builds on top of. We spoke with Satya and agreed that the best path forward for both projects was for Expo Router to fork the parts of React Navigation that it depends on most directly. This was not a decision about moving away from React Navigation as a project. It was about giving each project the freedom to evolve in the direction that best serves its users. For Expo Router, the fork gives us room to make changes that are specific to file-based routing, web, server rendering, and other Expo Router use cases. Some of the improvements we want to make would not necessarily apply to React Navigation users directly, and carrying those changes upstream would add complexity for everyone. It also lets us create a more focused version of the React Navigation internals for direct use inside Expo Router. By owning that layer, we can simplify the integration, reduce the amount of workaround code, and make Expo Router easier to maintain over time. Another practical reason is dependency versioning. In past releases, projects could end up with multiple versions of React Navigation installed, which led to issues. Forking the internal pieces we rely on gives us more control over compatibility and makes Expo Router releases more predictable. Finally, Expo Router is improving its web-based capabilities such as data loaders and server-side rendering. These features are not part of React Navigation, and supporting them well requires changes that are much easier to make in a codebase tailored specifically to Expo Router. What does it mean for you? Because Expo Router no longer depends on React Navigation, you will no longer be able to use code imported directly from @react-navigation/*. We know that this is a breaking change for you, so we prepared several tools to make the migration easier. To migrate all React Navigation imports to expo-router/react-navigation in your codebase, you can use our codemod: Our migration guide contains all the necessary steps if you decide to do the migration manually. Lastly, in order to make the migration gradual and smooth, all imports of @react-navigation/core from libraries will be automatically replaced with expo-router/react-navigation ones for at least one release cycle. If you have any problems or spot any issues, please let us know! What’s next for Expo Router? Together with the React Navigation team, we’re currently working on a shared API for library authors, to support both libraries at the same time. If you maintain a library that should support both Expo Router and React Navigation, we’d love to hear from you and collaborate on adapting it to the new APIs. Suspense customization in Expo Router We’ve enabled s

Expo Router v56: Decoupling from React Navigation | Expo | DocsDigest