Explain Fast Refresh and how it superseded Hot Reload and Live Reload. What edge cases force a full reload?
Fast Refresh (RN 0.61+, 2019) is React Native's hot-update system — it preserves your component state when you save a file. It replaced both the older Hot Reload and Live Reload features.
The history (and why they're gone):
Live Reload — reloaded the whole app on every file save; you lost all in-memory state (the screen you were on, form input, navigation stack).
Hot Reload — tried to inject changes without re-mounting; brittle, often left the app in a desynced state.
Fast Refresh (2019, deprecated the other two) — best of both: per-component updates with state preserved, plus a graceful fall-back to full reload when needed.
How Fast Refresh works:
Updates React components in place; preserves their
useStatevalues.Recovers from syntax errors and runtime errors automatically — saving the fix re-applies cleanly.
Edge cases that force a full reload:
Editing a non-component file (utils, helpers, services) — Fast Refresh can't safely hot-swap, so it reloads.
Editing a class component (functional components are first-class).
Module-level side effects (file-level
console.log, top-level event listeners).Changes to native modules or anything outside the JS bundle (Info.plist, AppDelegate) — full rebuild required.
Be careful with terminology: Hot Reload was deprecated in 2019 and replaced by Fast Refresh. Saying 'Hot Reload vs Fast Refresh' in 2026 dates you. The honest answer: Fast Refresh is the only one that's alive; it's a fusion of Hot Reload's component-level updates and Live Reload's reliability. Mention the edge cases that force a full reload — those show you've actually used it.