Expo Router navigation slows past 40 nested routes, with fixes for layout re-renders and focus
A team migrating a multi-tenant dashboard from React Navigation to Expo Router found a performance drop at around 42 nested routes, with animations falling from 60fps to 38fps and memory rising 140MB on Android mid-range devices. Benchmarks on a Pixel 5 and iPhone 12 using Expo SDK 52 and React Native 0.76 showed navigation time and frame drops rising sharply as route depth increased. The team attributed the problem to re-renders of the layout tree on navigation events, compounded by runtime TailwindCSS class recalculation in nested layouts. Replacing dynamic class props with static StyleSheet references cut navigation time at 50 routes from 187ms to 94ms and reduced frame drops per transition from 9 to 3. The team also found that modal routes overlaying tab navigators broke screen reader focus, which they addressed by wrapping the modal in a container with accessibilityViewIsModal.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in