Navigation Performance

Stacks keep covered screens mounted and tabs keep visited tabs mounted, which preserves scroll positions and input but lets hidden screens re-render when state they read changes. BookNest's cart tab logs its renders. Visiting the cart once, then adding Salt and Saffron three times from its book screen, gave by default:

Output of 154
 LOG  path: /book/3
 LOG  render Cart tab, 1 items
 LOG  book screen, id = "3"
 LOG  render Cart tab, 2 items
 LOG  book screen, id = "3"
 LOG  render Cart tab, 3 items
 LOG  book screen, id = "3"

The cart was not visible, yet it rendered three times. With freezeOnBlur: true in the tab navigator's screenOptions (Stacks, Tabs, Drawers), the same taps logged only the book screen, and the cart rendered once, with 3 items, when its tab was opened again. Freezing uses React 7,897 Suspense, through react-freeze (https://github.com/software-mansion/react-freeze 1,654 ), to hold back a hidden screen's updates. On the root stack the same option did not stop these renders, so measure where you apply it. Other levers: