What is a bridge in React Native ?
Last Updated :
11 Jan, 2025
A React Native app comprises two sides as given below.
- The JavaScript Side
- The Native Side
The Native Side should be Java or Kotlin for Android and Swift or Objective-C for iOS.
The huge reason for the popularity of React Native is that a bridge can be created between the JavaScript code and Native language. React Native is developed in a manner in which we can produce a bridge between the JavaScript code and the Native Language. The Bridge in React Native permits the JavaScript code and the Native code to interact with each other. Without the bridge in React Native, there is absolutely no means for the native code to transmit any information to the JavaScript code and vice versa.
Need of Bridge in React Native: Suppose we need reutilize few existing Java library without implementing it again in JavaScript. So, we can reutilize it in our React Native application with the use of Native Bridge. Sometimes, to build an application of production level, we will most likely need to use Native Bridge.
Working of bridge: When we hit our app icon to open our app then the OS designs the main thread (a UI thread a.k.a) and allots this thread to our app. This main thread creates the JavaScript thread and the shadow thread (also known as the shadow tree). The shadow thread's task is to compute layouts described on the JavaScript side and redirect that detail to the Native side. Views are set down in JavaScript, computed in the Shadow tree, and redirected to the UI thread.
Dispatching data: Now we know that how layouts are described at the begin however what takes place after the app starts running? what happens when we need to impair a button? Does this detail is sent through the bridge?
To impair a button we may set a feature on the JavaScript side that will be redirected above the bridge like a serialized JSON object. Improvements on native views are grouped simultaneously and redirected over the native side at the ending of all iteration of the event loop.
Along with passing properties, we can pass a function that will run JavaScript code as a reaction to several events on the native side (such as a press to the button). We note this callback in JavaScript, which turns serialized and redirected to the native side. When we press the button, the native event is redirected to the JavaScript domain and the callback is performed. Now, we can also redirect events out from the native side to the JavaScript side directly without utilizing a callback. The issue is that if we begin this interactivity on the native side then we are not aware of who is paying attention to the JavaScript side, which can activate undesired steps and which can make our code difficult to debug. It makes furthermore sense to make use of callbacks of the JS side except have a definite cause not to.
Execution: Most of the time all things pass steadily however sometimes like an original bridge it obtains traffic jams. When there is a big catalog of items and we begin scrolling rapidly then we might recognize a blank screen prior to the rest of the items are conveyed. This happens because the onScroll native event is redirected to the JavaScript thread, the JavaScript thread transmits the new layout detail to the shadow tree, the shadow tree computes the layout and redirects to the native side. While scrolling rapidly we gather these events that give rise to a traffic jam over the bridge. We can try to escape this by pre-computing layouts, in order to cross the bridge a few times. While executing complex animations we can obtain similar execution problems.
Let us now explore in-depth and recognize how React Native functions under the hood and this will help us to understand the compilation of JavaScript to a Native code and the working of the whole procedure. It is significant to recognize how the whole procedure works, so that sometimes if you have performance issues then you will recognize where this issue originates.
Flow of Information: As we have discussed React ideas that power up React Native, and be one of them is that UI is a function of data. You can convert the condition and React notices that what to be updated. Now let us suppose that how details flow along with the usual React app. Explore the diagram given below :

Explanation of above diagram:
- We have a React section, which proceeds details to three child sections.
- What is occurring anonymously is that a Virtual DOM tree is generated, constituting these section hierarchies.
- When the condition of the parent section is updated, React notices that how to proceed detail to the children.
- As children are primarily a depiction of UI, React recognizes that how to group Browser DOM updates and implements them.
Now let us detach the Browser DOM and suppose that rather of grouping Browser DOM updates, React Native do the same in return with calls to Native modules. So proceeding details to Native modules can be done by two means, which are given below:
- Shared mutable data
- Serializable messages interchanged between JavaScript and Native modules
React Native uses the second method, which is Serializable messages interchanged between JavaScript and Native modules. Rather than mutating data on shareable objects, it proceeds asynchronously serialized grouped messages to the Bridge of React Native. The Bridge in React Native is the layer that permits the JavaScript code and the Native code to interact with each other.
Architecture: Following is the diagram that explains the structure of React Native architecture :
React Native ArchitectureThree layers are stated in the diagram above:
- JavaScript
- Bridge
- Native
The Bridge in React Native is the layer that permits the JavaScript and the Native modules to interact with each other and is primarily a carrier layer that conducts nonparallel chronological grouped feedback messages from JavaScript to Native modules. In the picture given above the Native layer is shown last since this layer is nearest to the device itself.
When an incident is implemented on the Native layer then it might be a timer, touch, or network request, primarily, any incident associating device Native modules. Its data is assembled and this data is sent to the React Native Bridge as a serialized message. After that, the Bridge proceeds this message towards the JavaScript layer.
The JavaScript layer is an incident loop. After the React Native Bridge proceeds the Serialized payload to JavaScript then the incident is processed and the application logic becomes active.
Threading Model: Now, after all the things that we have discussed above it is significant to recognize that all the things discussed above are done on three major threads:
- UI (the application's main thread)
- Native modules
- JavaScript runtime
Let's understand about each of the above threads:
The UI (the application's main thread): It is the Native thread where the native-level perception takes place and It is the place where our platform of choices such as iOS or Android, carries out drawing, styling, and measuring.
Native modules: If the application accesses any Native APIs then the accessing is done on a different Native modules thread. For instance, if the camera, location, photos, and any further Native API is accessed then generally arrangement and indications are also concluded on this thread.
JavaScript runtime: It is the thread where every JavaScript application code will run. After all, it is based on a JavaScript incident loop, so it is steadier than the UI thread. Hence, when complicated calculations are done in an application that conducts many UI changes then these may give on to poor performance.
Similar Reads
React Native Tutorial React Native is a framework developed by Facebook for creating native-style applications for Android & iOS under one common language, i.e. JavaScript. Initially, Facebook only developed React Native to support iOS. However, with its recent support of the Android operating system, the library can
5 min read
React Native Basics
Introduction to React NativeIf you want to build mobile apps for both Android and iOS. What should you learn? The individual native languages for each app i.e, Java for Android and Swift/Objective-C for iOS?, Actually NO. Native Android and iOS development are quite different and can be expensive â first, the language itself i
3 min read
What are the steps to create first React Native App ?React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, etc. Weâre always looking for shorter development cycles, quicker time to deployment, and better app performance. And there are so many hybrid mobile
4 min read
How React Native worksReact Native is a popular framework for building mobile applications using JavaScript and React. It allows developers to write code once in JavaScript and run it on both Android and iOS devices, bridging the gap between web and native mobile development. In this article, weâll explore the main compo
5 min read
What is a bridge in React Native ?A React Native app comprises two sides as given below.The JavaScript SideThe Native SideThe Native Side should be Java or Kotlin for Android and Swift or Objective-C for iOS.The huge reason for the popularity of React Native is that a bridge can be created between the JavaScript code and Native lang
7 min read
How React Native is different from ReactJS ?In this article, we will learn about how React Native is different from ReactJS. Both are popular JavaScript libraries. ReactJS is primarily used for building user interfaces on the web, while React Native extends its capabilities to mobile app development.React JSIt is a JavaScript library that sup
4 min read
React Native DebuggingDebugging is very important for building applications and removing errors. A good knowledge of debugging techniques allows for the faster and efficient development of software.Here we are going to discuss a few debugging techniques in React Native. We will be using expo-cli to develop, run, and debu
4 min read
React Native Components
How to import components in React Native ?React Native is a framework developed by Facebook for creating native-style applications for Android & iOS under one common language, i.e. JavaScript. Initially, Facebook only developed React Native to support iOS. However, with its recent support of the Android operating system, the library can
5 min read
React Native ListView ComponentThe ListView Component is an inbuilt React Native view component that displays a list of items in a vertically scrollable list. It requires a ListView.DataSource API to populate a simple array of data blobs and instantiate the ListView component with a data source and a renderRow callback.The major
4 min read
React Native ScrollView ComponentThe ScrollView Component is an inbuilt react-native component that serves as a generic scrollable container, with the ability to scroll child components and views inside it. It provides the scroll functionality in both directions- vertical and horizontal (Default: vertical). It is essential to provi
8 min read
React Native Tab Navigation ComponentIn this article, we are going to see how to implement Tab Navigation in react-native. For this, we are going to use createBottomTabNavigator component. It is basically used for navigation from one page to another. These days mobile apps are made up of a single screen, so create various navigation co
3 min read
React Native Drawer Navigation ComponentIn this article, weâre going to explore how to implement Drawer Navigation in a React Native application. We'll be using the createDrawerNavigator component, which serves as a convenient UI panel for displaying your navigation menu. By default, this panel is hidden, but it gracefully slides into vie
3 min read
React Native ActivityIndicator ComponentIn this article, weâre going to explore how to create an ActivityIndicator in React Native. If youâve ever wanted to show a loading spinner while your app is processing something, the ActivityIndicator component is just what you need. Itâs designed to display a circular loading indicator that lets y
2 min read
Dumb Components in React NativeIn this article, we are going to learn about Dumb components in React Native. The dumb component is one of the categories of React Components, so before diving into the dumb component details. Let's know a little bit about components. A Component is one of the core building blocks of React. The comp
5 min read
What is the TouchableHighlight in react native ?TouchableHighlight is a component that is used to provide a wrapper to Views to make them respond correctly to touch-based input. On press down the TouchableHighlight component has its opacity decreased which allows the underlying View or other component's style to get highlighted.This component mus
4 min read
React Native FlatList ComponentFlatList is a React Native component that is a scrolling list that shows changing information while keeping the same look. It's great for long lists where the number of items can change. Instead of loading all items simultaneously, this component only shows what you can see on the screen. This makes
4 min read
React Native AsyncStorage ComponentHere is a guide on how to use AsyncStorage in React Native. We will use the AsyncStorage component. AsyncStorage is an unencrypted, asynchronous, persistent key-value storage system that is accessible globally throughout the app.SyntaxAsyncStorage.method();Methods in AsyncStorageMethodDescriptionget
5 min read
React Native Button ComponentThe following approach covers how to use the Button in react-native. For this, we are going to use the Button component. It is basically a clickable component that is used to perform some action when clicked by the user. Let's watch a demo video of what we are going to develop.Demo Video:Syntax<B
6 min read
React Native UI Elements
How to style React Native Application ?In this article, we'll learn how to style React Native applications. There are two major ways to style your React Native Application.Table of ContentStyle PropsUsing StyleSheetStyle Props ExampleUsing StyleSheet ExampleStyle PropsTo style an element with the style props, the value must be a JavaScri
5 min read
How to create a basic button in React Native ?In this article, we will learn how to create a basic button in React Native. To build a React Native app, we will use the Expo CLI, which provides a smoother experience for running your applications.ExpoIt is a framework and a platform for universal React applications. It is a set of tools and servi
5 min read
How to Implement Radio Button In React Native ?In this article, we will learn to implement a Radio Button in React Native. A radio button signifies a graphical user interface element enabling individuals to make an exclusive seÂlection among multiple alternativeÂs. React Native is a popular platform for creating native mobile apps for iOS and A
10 min read
How to create a table in react-native ?React native is a framework developed by Facebook for creating native-style apps for iOS & Android under one common language, JavaScript. Initially, Facebook only developed React Native to support iOS. However, with its recent support of the Android operating system, the library can now render m
2 min read
How to add SearchBar in React Native ?In this article, we'll add search functionality in React-Native. This can be regarded as a continuation of the React native flatlist component. In the article above, we created a flatlist using the Flatlist component. Let's make it searchable using the SearchBar component. To add a SearchBar to your
13 min read
React Native Animated Fade In Fade Out EffectIn this article, we will dwell on the implementation of fadeÂ-in and fade-out effects in ReÂact Native using the Animated moduleÂ.The fadeÂ-in and fade-out effect, a timeÂless animation technique utilizeÂd to seamlessly transition an eleÂment from invisibility to visibility and vice versa, holds a s
8 min read
How to set Background Image in react-native ?In this article, we will see how to set background Image in react-native. In our project, we will simply set a background image and show a text input on top of it. Setting background images requires using the ImageBackground component in React Native. You can style it further to adapt to different s
5 min read
How to create custom FAB(Floating Action Button) in React Native?React Native doesn't come with any FAB component built in. A floating action button (FAB) is used whenever you want to display a button on top of everything. If you have used ScrollView and the user can scroll up and down, this FAB button will always stay at the same position and doesn't move with t
7 min read
How to add a Progress Bar in react-native using react-native-paper library ?In this article, weâre going to create a progress bar using material design. Weâll be using the react-native-paper library to display this progress bar. The progress bar will act as a status indicator, showing how much progress has been made. In our project, we will place the progress bar at the top
10 min read
How to create Avatar in react-native ?In this article, we will create 3 different kinds of Avatars using the react-native-paper library. An avatar is used for representation purposes in the form of icons, images, or text. In our project, we will create all these Avatars using material design. To give you a better idea of what weâre goin
6 min read
React Native API
React Native Questions
Find what caused Possible unhandled promise rejection in React Native ?In this article, we will check out the `Possible Unhandled Promise Rejection` error in react native.Step-by-Step ImplementationStep 1: Create a React Native ProjectNow, create a project with the following command.npx create-expo-app app-name --templateNote: Replace the app-name with your app name fo
5 min read
Axios in React NativeAxios is a widely used HTTP client for making REST API calls. You can use this in React Native to get data from any REST API.Axios in React NativeAxios is a library that helps you send HTTP requests in React Native apps. It allows mobile devices to communicate with a server, enabling them to send an
8 min read
How to fetch data from a local JSON file in React Native ?Fetching JSON (JavaScript Object Notation) data in React Native from Local (E.g. IOS/Android storage) is different from fetching JSON data from a server (using Fetch or Axios). It requires Storage permission for APP and a Library to provide Native filesystem access.Implementation: Now letâs start wi
3 min read
How to center a View component on screen ?The View Component is the basic building block for creating the user interface. It can map directly to the native view of different platforms, like UIView, <div>, android.view, etc. The View component can consist of nested View components as well as other native components (children).Approach:
3 min read
How to Add Icons at the Bottom of Tab Navigation in React Native ?Adding Icons at the Bottom of Tab Navigation in React Native is a fairly easy task. In this article, we will implement a basic application to learn to use icons in our tab navigation. For this, we first need to set up the application and install some packages.Implementation: Now letâs start with the
3 min read
How to pass value between Screens in React Native ?With React Navigation, we can also pass values or parameters between screens in React Native. We will create a simple stack navigator with 2 screens and pass values from one screen to another. Letâs watch a short video to see what we are going to create.Demo VideoStep-by-Step ImplementationStep 1: C
6 min read
How to make a Post request from frontend in react-native ?The POST method is used to send data to the server to create a new resource or modify an existing resource on the server. We cannot make a POST request by using a web browser, as web browsers only directly support GET requests.But what if we want to develop an application where we need to add some d
9 min read
How to add GIFs in react-native ?React-native is a cross-platform mobile application development tool. It is one of the frameworks built on top of Javascript. Now let's come to the point. We usually use .jpeg or .png images because we are more friendly to them. But what if you want to add GIF support to your react native project. T
2 min read
How to Implement Form Validation in React Native ?React Native is a JavaScript framework for cross-platform mobile app development. Expo CLI simplifies React Native development with a streamlined process and helpful tools. In this article, we'll see how to implement form validation in react native. Form validation ensures the validity of user input
3 min read
How many threads run in a React Native app ?If you want to be a react native developer and have mastered creating basic android and ios apps, then one of the most important things is to learn the execution process of threads. If you understand how a react native app executes and how many threads it uses that will help you build more efficient
3 min read
How to add Table in React Native ?React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows, and UWP by enabling developers to use the React framework along with native platform capabilities. In this article, we will
2 min read
How to add a Menu in react-native using Material Design ?In this article, we will see how to create a menu in react-native. To make a menu, we will use the material design library, i.e., react-native-paper. The menu contains a list of options that appear temporarily. In our project, we will create a button, and the menu will appear on the click of that bu
9 min read
What are props in React Native ?Props are used to provide properties to the components using which they can be modified and customized. These properties are passed to the components when the component is created. Props are used in both user-defined and default components to extend their functionality. These props are immutable and
5 min read
How to check the version of React native ?React Native is a mobile app framework to build natively-rendered apps based on JavaScript. To know the version of React Native (RN), we can use some simple ways. In this article, we will see four easy ways to find the react native version: Using TerminalUsing npxUsing package.jsonUsing the info opt
2 min read
How to perform logging in React Native ?In this article, we will learn about logging in React Native.LoggingIt is a quick and easy way to debug your application in development phase. It helps to get an insight into the functioning of the application. To perform logging, we can simply use the console.log() statements to log the required in
4 min read
How to Upload and Preview an Image in React Native ?Image uploading and previewing are widespread in mobile apps. With the Expo ImagePicker package, React Native makes this work easier. Uploading and previewing photographs is a common feature in Android and iOS applications, especially in the user profile section. This feature allows users to submit
4 min read
How to Add Phone Number Input in React Native ?React Native is a JavaScript framework for cross-platform mobile app development. In this article, we'll see how to add a phone number input field in a React Native app using Expo CLI.âAdding a phone number input field in React Native is helpful for collecting user phone numbers during registration
3 min read
How to Get Window Width and Height In React Native ?In this article, we'll explore two different approaches to obtaining the screen width and height in a React Native application. ScreeÂn dimensions, including width and height, play a vital role in deÂsigning user interfaces that adapt seÂamlessly to different deÂvices and orientations. By understand
5 min read
How to check Platform and Device Details in React Native ?React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows, and UWP by enabling developers to use the React framework along with native platform capabilities.In this article, we will
3 min read
Top React Native Apps to Build in 2025Top React Native Apps to Build in 2025 is a popular framework for building high-performance mobile apps using JavaScript and React. It allows developers to create apps for both iOS and Android with a single codebase, saving time and resources. React Native, developed by Facebook. Initially, for iOS,
9 min read
How to Create ToDo App using React Native ?In this article, we'll see how to create a To-Do app using React Native. An ideal illustration of a basic application that can be developed with React Native is a To-Do app. This app enables users to generate, modify, and remove tasks, assisting them in maintaining organization and concentration. To
11 min read
React Native Projects
How to Generate Random Numbers in React Native ?Generating random numbers is a fundamental aspect of React Native development. It enables various functionalities like generating game elements, creating unique identifiers, and implementing randomized UI components. In this article, we are going to see how we can generate a random number by using R
7 min read
Build a Calculator using React NativeBuilding a simple calculator app in React Native is an exciting project. You'll create an interface with buttons for numbers (0-9) and operations (+, -, Ã, ÷), along with a display area for showing input and results. Using React Native, you'll write functions that handle button presses and perform c
10 min read
Create a Task Manager App using React-NativeIn this article, we'll walk you through the process of building a basic Task Manager app using React Native. The application enables users to effortlessly create, edit, complete/incomplete, and delete tasks, providing an uncomplicated yet impactful introduction to ReÂact Native's mobile app develop
12 min read
How to Create Emoji Picker in React Native ?React Native is a popular cross-platform framework for mobile app development. Emojis have become common in modern applications, providing personalization and enhancing user engagement. In this article, we'll see how we can add an emoji picker to a React Native application.React Native doesn't have
3 min read
Create a Stop Watch using React NativeStopwatches serve as vital tools for accurately measuring time intervals. By the capabilities of React Native, we can effortleÂssly develop a versatile stopwatch application compatible with both iOS and Android devices. In this article, we will guide you through the step-by-step process of creati
10 min read
Create an OTP Generator and Validator App using React-NativeOne-time passwords (OTPs) have become a popular choice for enhancing the security of various online services and applications. In this article, we'll explore how to create an OTP Generator and Validator App using React Native, a popular framework for building cross-platform mobile applications.To gi
11 min read
Create a Rock Paper Scissors Game using React-NativeRock, Paper, Scissors is a timeless game that has entertained people of all ages for generations. In this article, we will walk you through the process of creating a Rock Paper Scissors mobile game using React Native. You'll learn how to build a simple yet engaging game that can be played on both An
10 min read
Create a Number Guessing App using React-NativeThe Number Guessing App is a simple mobile game where the user tries to guess a random number generated by the app. The app provides feedback to the user, indicating whether their guess is too high or too low, and keeps track of the number of attempts it takes to guess the correct number. In this ar
10 min read
Create a BMI Calculator App using React-NativeIn this article, we will create a BMI (Body Mass Index) calculator using React Native. A BMI calculator serves as a valuable and straightforward tool for estimating body fat by considering height and weight measurements.A BMI Calculator App built with React Native allows users to input their age, he
4 min read
Create a GPA Calculator using React NativeA GPA calculator proves to be a useful tool for students who want to monitor their academic progress. In this article, we will build a GPA calculator using React Native, a popular framework for building mobile applications. To give you a better idea of what weâre going to create, letâs watch a demo
15+ min read
Create a Password Manager using React-NativeThis article will demonstrate how to create a Password Manager Application using React-Native. To assist users in securely storing and managing their passwords, we will develop a Password Manager mobile application using React Native for this project. The application will provide functionalities su
15+ min read
Create Jokes Generator App using React-NativeIn this article, we are going to build a joke generator app using react native. React Native enables you to master the designing an elegant and dynamic useÂr interface while eÂffortlessly retrieving jokeÂs from external APIs. To give you a better idea of what weâre going to create, letâs watch a de
8 min read
Build a Dictionary App Using React NativeIn this article, we will implement a Dictionary app using React Native. The app allows users to effortlessly search for word meanings, access definitions, listen to pronunciations, and examine example sentences. To give you a better idea of what weâre going to create, letâs watch a demo video.Demo V
15+ min read
Create a Blog App using React-NativeThis article will help you make a simple blog app using React Native. The app lets users add, edit, and delete blog posts, making it easy to manage content. You will learn how to use different React Native features to create a user-friendly design that checks if the input is correct, making sure all
15+ min read
Create a Text Editor App using React-NativeIn this article, we are going to implement a text editor app using React Native. It will contain multiple text formatting functionalities like bold, italic, underline, etc. We will implement Editor with a library called "react-native-pell-rich-editor."Preview of final output: Let us have a look at h
3 min read
Create a Password Validator using React-NativeIn this article we are going to implement a Password Validator using React Native. The Password validation app in React Native is a simple application that is used to check the strength of a password. Passwords protect your personal and sensitive data, such as financial information, medical records,
11 min read
Create a Currency Converter using React-NativeIn this article, we will build a currency converter using react native. This app serves as a valuable tool for travelers, business professionals, and anyone who frequently deals with international currencies. It enables users to effortleÂssly convert one currency to another. To give you a better ide
14 min read