React Native 0.80 - React 19.1, JS API Changes, Freezing Legacy Arch and much more
Key Points
- React upgraded to 19.1.0
- Deep imports deprecated; opt-in Strict TypeScript API available
- Legacy Architecture frozen; DevTools warnings for incompatible APIs
Summary
React Native 0.80 upgrades the bundled React to 19.1.0 and focuses on stabilizing the JavaScript public API. Key deliverables are deprecating deep imports (with ESLint and console warnings), an opt-in Strict TypeScript API generated from source, freezing the Legacy Architecture with warnings for incompatible APIs, an experimental iOS prebuild of 3rd‑party dependencies, and several platform breaking changes and tooling updates.
Key Points
-
React
- Ships with React 19.1.0. Owner stacks improved (dev-only). Known issue with
@babel/plugin-transform-function-namein the RN Babel preset; a fix is planned.
- Ships with React 19.1.0. Owner stacks improved (dev-only). Known issue with
-
JavaScript API
- Deep imports are deprecated; warnings via ESLint and console are enabled for project source. Migrate imports from subpaths to the package root, e.g.:
- Before:
import { Alert } from 'react-native/Libraries/Alert/Alert' - After:
import { Alert } from 'react-native'
- Before:
- Some subpath-only APIs will be removed intentionally to reduce API surface; follow the community thread for export decisions.
- Deep imports are deprecated; warnings via ESLint and console are enabled for project source. Migrate imports from subpaths to the package root, e.g.:
-
TypeScript
- New opt-in Strict TypeScript API (generated from source, index-only exports) available now. Opt in via tsconfig; it will become the default in a future release.
-
Legacy Architecture
- Legacy Architecture is frozen (no new fixes or testing). DevTools will warn for APIs incompatible with the New Architecture—start migrating libraries/apps now.
-
iOS prebuilds (experimental)
- Release produces ReactNativeDependencies.xcframework (prebuilt 3rd‑party libs like Folly/GLog) to reduce cold build times. Enable with
RCT_USE_RN_DEP=1beforepod installor add the env var in your Podfile. Report any issues to the discussion thread.
- Release produces ReactNativeDependencies.xcframework (prebuilt 3rd‑party libs like Folly/GLog) to reduce cold build times. Enable with
-
Android and other changes
- Interprocedural Optimization (IPO) enabled for RN and Hermes: ~1MB APK size reduction with no project changes required.
- JSC: 0.80 is the last RN release with first‑party JSC; future JSC support moved to
@react-native-community/javascriptcore.
-
Breaking changes and toolchain updates to check
exportsfield added topackage.json(may affect Metro resolution and Jest mocking of deep imports). Shims included.eslint-plugin-react-hooksbumped (lint rules may flag new issues).- Kotlin upgraded to 2.1.20; several Java classes removed or migrated to Kotlin (nullability/type changes). See CHANGELOG for full list.
Recommended actions for engineers
- Use the React Native Upgrade Helper and run full test suites after updating to 0.80.
- Search/replace deep imports to
react-nativeroot imports; address ESLint warnings. - Opt into the Strict TypeScript API in new projects or when migrating (via tsconfig) to get stricter, generated types.
- Enable iOS prebuilds in a branch to benchmark build-time improvements and report regressions.
- Watch DevTools for Legacy Architecture warnings and start migrating libraries to the New Architecture.
- Review CHANGELOG for detailed breaking changes (Metro, Jest, Kotlin, removed classes) and adjust code/tests accordingly.