React Native: What It Is and How to Use It

React Native: What It Is and How to Use It

Verified Sources
Jun 11, 2026

React Native is an open-source framework for building native apps for Android and iOS using React and JavaScript or TypeScript.2 Its key value proposition is code sharing: developers can write common application logic once and reuse it across platforms while still rendering real native UI components rather than web views. React Native is therefore best understood as a bridge between the React programming model and mobile platform capabilities.2

In practical terms, React Native lets developers define screens as components, manage state declaratively, and compose interfaces using core primitives such as View, Text, Image, TextInput, and list components.2 Layout is primarily handled with Flexbox; unlike CSS on the web, the default flex direction in React Native is column.2

React Native has evolved substantially. Historically, JavaScript and native code communicated through an asynchronous bridge. In the newer architecture, React Native replaces major internals with systems such as Fabric and TurboModules, improving rendering, scheduling, startup behavior, and native interoperability.2 React Native also supports Hermes for improved startup performance by compiling JavaScript to Hermes bytecode during builds.2

A modern beginner workflow usually starts with Expo because the React Native documentation explicitly recommends using a framework, and Expo provides project scaffolding, routing, native libraries, and development tooling for production-ready apps.2

3

Footnotes

  1. Introduction · React Native - Official introduction to React Native documentation and learning path. 2 3

  2. Get Started with React Native · React Native - Official guidance on using React Native and recommendation to start with a framework such as Expo. 2 3 4

  3. New Architecture is here - React Native - Official explanation of the old bridge model and the newer architecture. 2 3 4

  4. React Fundamentals · React Native - Official explanation of components, JSX, props, and state in the React Native context.

  5. Layout Props · React Native - Official reference for layout properties such as flexDirection, gap, and sizing behavior. 2

  6. Layout with Flexbox · React Native - Official guide to Flexbox layout in React Native.

  7. An update on the New Architecture Rollout · React Native - Overview of Fabric, TurboModules, and migration concepts.

  8. Using Hermes - React Native - Official documentation on Hermes and build-time bytecode compilation.

  9. Meet Hermes, a new JavaScript Engine optimized for React Native · React Native - Official background on Hermes and its mobile performance goals.

  10. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements.

React Native Beginner Tutorial

Core Idea

React Native does not render HTML in a browser view. It maps React components to platform-native views and APIs.2

Footnotes

  1. Get Started with React Native · React Native - Official guidance on using React Native and recommendation to start with a framework such as Expo.

  2. New Architecture is here - React Native - Official explanation of the old bridge model and the newer architecture.

Why React Native Is Widely Used

React Native is attractive because it combines a familiar React development model with native app delivery. A single codebase can often support Android and iOS, reducing duplicated effort for business logic, state management, API access, and many UI patterns.2 At the same time, native developers can integrate platform-specific code when needed, which makes React Native suitable for both cross-platform and hybrid-native architectures.2

Typical use cases include:

  • Consumer mobile apps with shared Android and iOS features
  • Internal enterprise tools
  • MVPs and prototypes that need fast iteration
  • Apps that require some native integrations but not full platform duplication
  • Universal projects when using Expo tooling that can also target web in some workflows2

However, React Native is not a perfect fit for every case. Extremely platform-specialized interfaces, heavy custom graphics pipelines, or advanced real-time native workloads may require more platform-specific engineering. In such cases, React Native can still be used selectively, but teams should evaluate the trade-off between code sharing and low-level control.2

AspectReact Native StrengthLimitation / Consideration
Code reuseShared logic across Android and iOSSome platform-specific code is still needed
UI modelDeclarative React componentsMust learn mobile-specific APIs and constraints
EcosystemStrong library and Expo support2Library compatibility varies by architecture
PerformanceNative UI, Hermes, newer architecture2Poor list handling or heavy JS work can still cause dropped frames
OnboardingFast setup with Expo2Native toolchains may still be required later

Footnotes

  1. Get Started with React Native · React Native - Official guidance on using React Native and recommendation to start with a framework such as Expo. 2 3 4 5 6 7

  2. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements. 2 3 4

  3. New Architecture is here - React Native - Official explanation of the old bridge model and the newer architecture. 2 3

  4. Create your first app - Expo Documentation - Official step-by-step tutorial for initializing and editing a first Expo app.

  5. React Fundamentals · React Native - Official explanation of components, JSX, props, and state in the React Native context.

  6. Using Hermes - React Native - Official documentation on Hermes and build-time bytecode compilation.

  7. Performance Overview · React Native - Official performance guidance on frame rates, JS thread behavior, and common bottlenecks.

How a React Native Project Typically Evolves

Project Creation

Stage 1

Create a project with create-expo-app, which Expo recommends as the easiest entry point for new React Native applications.2"

Footnotes

  1. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements.

  2. Create your first app - Expo Documentation - Official step-by-step tutorial for initializing and editing a first Expo app.

UI Construction

Stage 2

Build screens using core components such as View, Text, Image, and TextInput, then style them with Flexbox and style props.3"

Footnotes

  1. React Fundamentals · React Native - Official explanation of components, JSX, props, and state in the React Native context.

  2. Layout Props · React Native - Official reference for layout properties such as flexDirection, gap, and sizing behavior.

  3. Layout with Flexbox · React Native - Official guide to Flexbox layout in React Native.

Navigation

Stage 3

Add navigation, commonly with Expo Router in Expo projects, which uses file-based routing and integrates with React Native navigation patterns.2"

Footnotes

  1. Navigation in Expo and React Native apps - Expo Documentation - Official overview of navigation options and recommendation of Expo Router for Expo projects.

  2. Core concepts of file-based routing in Expo Router - Expo Documentation - Official explanation of file-based routing and route conventions.

Native Features

Stage 4

Integrate device capabilities and native modules, either through Expo libraries or custom native code when needed.3"

Footnotes

  1. Get Started with React Native · React Native - Official guidance on using React Native and recommendation to start with a framework such as Expo.

  2. New Architecture is here - React Native - Official explanation of the old bridge model and the newer architecture.

  3. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements.

Optimization and Release

Stage 5

Use production builds, Hermes, and list/performance optimizations before shipping to app stores.3"

Footnotes

  1. Performance Overview · React Native - Official performance guidance on frame rates, JS thread behavior, and common bottlenecks.

  2. Using Hermes - React Native - Official documentation on Hermes and build-time bytecode compilation.

  3. Meet Hermes, a new JavaScript Engine optimized for React Native · React Native - Official background on Hermes and its mobile performance goals.

Core Building Blocks You Must Learn

To use React Native effectively, you need to understand both React concepts and mobile-specific primitives.

1. Components and JSX

A React Native app is a hierarchy of components written with JSX. Components may be functional components that return UI based on props and state.

2. Props and State

Props pass data into child components, while state stores data that changes over time and triggers rerenders.

3. Core Components

React Native provides core UI elements such as:

  • View for containers and layout
  • Text for text rendering
  • Image for images
  • TextInput for user input
  • FlatList for large scrolling lists3

4. Styling and Layout

Styles are JavaScript objects rather than CSS files. React Native supports many familiar style properties, but layout is optimized for mobile and primarily uses Flexbox.2 Important rules include:

  • default flexDirection is column
  • pixel-based gap is supported
  • width and height can use pixels or percentages

5. Navigation

React Native core does not include a complete navigation system; navigation is generally added through libraries. For Expo projects, Expo Router is recommended and uses file-based routing, where files inside the app or src/app directory become routes.2

Footnotes

  1. React Fundamentals · React Native - Official explanation of components, JSX, props, and state in the React Native context. 2 3 4 5

  2. Layout with Flexbox · React Native - Official guide to Flexbox layout in React Native. 2 3

  3. Performance Overview · React Native - Official performance guidance on frame rates, JS thread behavior, and common bottlenecks.

  4. Layout Props · React Native - Official reference for layout properties such as flexDirection, gap, and sizing behavior. 2 3

  5. Navigation in Expo and React Native apps - Expo Documentation - Official overview of navigation options and recommendation of Expo Router for Expo projects. 2

  6. Core concepts of file-based routing in Expo Router - Expo Documentation - Official explanation of file-based routing and route conventions.

Best Starting Path

If you are new to React Native, begin with Expo. The React Native docs state that most developers benefit from using a framework such as Expo for production-ready tooling and APIs.2

Footnotes

  1. Get Started with React Native · React Native - Official guidance on using React Native and recommendation to start with a framework such as Expo.

  2. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements.

How to Start Using React Native with Expo

  1. 1
    Step 1

    Install Node.js LTS, a code editor, and ensure you have a terminal available on macOS, Windows, or Linux as described in Expo's getting-started materials.2

    Footnotes

    1. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements.

    2. Create your first app - Expo Documentation - Official step-by-step tutorial for initializing and editing a first Expo app.

  2. 2
    Step 2

    Run npx create-expo-app to scaffold a new project. Expo documents this as the standard way to initialize a React Native application with recommended defaults.2

    Footnotes

    1. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements.

    2. Create your first app - Expo Documentation - Official step-by-step tutorial for initializing and editing a first Expo app.

  3. 3
    Step 3

    Change into the project directory and open it in your editor. The default template includes a working React Native project and commonly includes Expo Router in current default templates.2

    Footnotes

    1. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements.

    2. Navigation in Expo and React Native apps - Expo Documentation - Official overview of navigation options and recommendation of Expo Router for Expo projects.

  4. 4
    Step 4

    Start the app with Expo tooling so you can open it in Expo Go, a simulator, or an emulator. Expo describes this as the easiest way to experiment and prototype quickly.

    Footnotes

    1. Develop an app with Expo - Expo Documentation - Official overview of Expo development builds, prebuild, and the core development loop.

  5. 5
    Step 5

    Modify the starter component to render View and Text elements. React Native documentation emphasizes beginning with core components and simple interactive examples.2

    Footnotes

    1. Introduction · React Native - Official introduction to React Native documentation and learning path.

    2. React Fundamentals · React Native - Official explanation of components, JSX, props, and state in the React Native context.

  6. 6
    Step 6

    Create route files inside the app directory when using Expo Router. Files become screens automatically, and the root layout defines shared UI such as headers or tabs.2

    Footnotes

    1. Navigation in Expo and React Native apps - Expo Documentation - Official overview of navigation options and recommendation of Expo Router for Expo projects.

    2. Core concepts of file-based routing in Expo Router - Expo Documentation - Official explanation of file-based routing and route conventions.

  7. 7
    Step 7

    Use Expo libraries or native modules for device features. If your app later needs direct native customization, Expo can generate native projects using npx expo prebuild.

    Footnotes

    1. Develop an app with Expo - Expo Documentation - Official overview of Expo development builds, prebuild, and the core development loop.

  8. 8
    Step 8

    Validate behavior on Android and iOS, then measure performance in release mode because development mode does not represent production performance accurately.2

    Footnotes

    1. Performance Overview · React Native - Official performance guidance on frame rates, JS thread behavior, and common bottlenecks.

    2. Using Hermes - React Native - Official documentation on Hermes and build-time bytecode compilation.

1import React from 'react'; 2import { View, Text, StyleSheet } from 'react-native'; 3 4export default function App() { 5 return ( 6 <View style={styles.container}> 7 <Text style={styles.title}>Hello React Native</Text> 8 <Text>This screen is rendered with native components.</Text> 9 </View> 10 ); 11} 12 13const styles = StyleSheet.create({ 14 container: { 15 flex: 1, 16 justifyContent: 'center', 17 alignItems: 'center', 18 padding: 24, 19 }, 20 title: { 21 fontSize: 24, 22 fontWeight: 'bold', 23 marginBottom: 12, 24 }, 25});

How Navigation Works in Real Projects

A real application quickly grows beyond a single screen, so navigation becomes essential. React Native core intentionally excludes a full navigation solution; this is delegated to community and framework libraries. In Expo projects, Expo Router is recommended because it converts files into routes, supports typed routes, deep linking, and uses React Navigation underneath.2

For example:

  • app/index.tsx becomes the initial route
  • app/home.tsx maps to /home
  • app/_layout.tsx defines shared layout and navigation structure

This file-based model simplifies project organization and aligns mobile navigation with web-style route conventions.2

Footnotes

  1. Navigation in Expo and React Native apps - Expo Documentation - Official overview of navigation options and recommendation of Expo Router for Expo projects. 2 3

  2. Core concepts of file-based routing in Expo Router - Expo Documentation - Official explanation of file-based routing and route conventions. 2 3 4 5

Relative Learning Focus for Beginners

A conceptual distribution of early study effort when starting React Native.

Performance, Architecture, and Practical Constraints

React Native performance depends on both JavaScript execution and UI rendering. The official performance guidance distinguishes between the JavaScript thread and the main UI thread; expensive work on the JavaScript side can cause dropped frames and visibly frozen interactions. This is why list rendering, large rerenders, and heavy synchronous calculations must be handled carefully.

For large lists, FlatList is the standard high-level component, and performance can often be improved by:

  • using getItemLayout when item sizes are predictable
  • avoiding anonymous renderItem functions
  • tuning maxToRenderPerBatch, windowSize, and related virtualization settings
  • using lighter row components and memoization

Hermes can improve startup characteristics because React Native can compile JavaScript to Hermes bytecode at build time. Meanwhile, the new architecture modernizes how React Native renders and communicates with native layers, replacing the older asynchronous bridge model with more direct systems such as Fabric and TurboModules.2 Conceptually, this reduces architectural overhead and enables better interoperability and rendering behavior.

A simplified performance principle is:

Perceived smoothness1JS thread blocking+UI thread blocking\text{Perceived smoothness} \propto \frac{1}{\text{JS thread blocking} + \text{UI thread blocking}}

This is not an official React Native formula, but it captures the engineering intuition behind the official guidance: responsiveness improves when you minimize heavy work in performance-critical paths.

Footnotes

  1. Performance Overview · React Native - Official performance guidance on frame rates, JS thread behavior, and common bottlenecks. 2 3 4

  2. Using Hermes - React Native - Official documentation on Hermes and build-time bytecode compilation. 2 3 4

  3. New Architecture is here - React Native - Official explanation of the old bridge model and the newer architecture. 2

  4. An update on the New Architecture Rollout · React Native - Overview of Fabric, TurboModules, and migration concepts.

Common Questions and Practical Clarifications

Important Limitation

Do not judge app speed only from development builds. React Native's official performance guidance notes that development mode can significantly affect responsiveness and frame rate.

Footnotes

  1. Performance Overview · React Native - Official performance guidance on frame rates, JS thread behavior, and common bottlenecks.

A Minimal Mental Model for Using React Native Well

To use React Native effectively, think in layers:

  1. React layer: components, props, state, events, and rerendering.
  2. React Native layer: mobile UI primitives, styling, layout, gestures, lists, and platform APIs.3
  3. Project tooling layer: Expo, routing, build systems, simulators, and native configuration.3
  4. Optimization layer: Hermes, release builds, list virtualization, and architecture-aware library choices.3

If you master these layers in order, the learning path becomes much more manageable. Start by building a simple screen, add input, introduce navigation, connect data, and only then move into advanced native modules or architecture topics.

A sensible progression is:

  • learn React fundamentals
  • learn core components and Flexbox2
  • create an Expo project2
  • add Expo Router navigation2
  • test on devices and optimize2

This approach matches the official ecosystem guidance and avoids unnecessary complexity at the start.2

Footnotes

  1. React Fundamentals · React Native - Official explanation of components, JSX, props, and state in the React Native context. 2

  2. Layout Props · React Native - Official reference for layout properties such as flexDirection, gap, and sizing behavior. 2

  3. Layout with Flexbox · React Native - Official guide to Flexbox layout in React Native. 2

  4. Performance Overview · React Native - Official performance guidance on frame rates, JS thread behavior, and common bottlenecks. 2 3

  5. Create a project - Expo Documentation - Official Expo project creation guidance and system requirements. 2 3

  6. Navigation in Expo and React Native apps - Expo Documentation - Official overview of navigation options and recommendation of Expo Router for Expo projects. 2

  7. Develop an app with Expo - Expo Documentation - Official overview of Expo development builds, prebuild, and the core development loop.

  8. New Architecture is here - React Native - Official explanation of the old bridge model and the newer architecture.

  9. Using Hermes - React Native - Official documentation on Hermes and build-time bytecode compilation. 2

  10. Create your first app - Expo Documentation - Official step-by-step tutorial for initializing and editing a first Expo app.

  11. Core concepts of file-based routing in Expo Router - Expo Documentation - Official explanation of file-based routing and route conventions.

  12. Get Started with React Native · React Native - Official guidance on using React Native and recommendation to start with a framework such as Expo.

Knowledge Check

Question 1 of 5
Q1Single choice

What best describes React Native?