{"id":3448,"date":"2023-12-27T11:00:48","date_gmt":"2023-12-27T11:00:48","guid":{"rendered":"https:\/\/www.kaashivinfotech.com\/blog\/?p=3448"},"modified":"2025-08-02T09:19:09","modified_gmt":"2025-08-02T09:19:09","slug":"advanced-react-native-interview-questions-answers","status":"publish","type":"post","link":"https:\/\/www.kaashivinfotech.com\/blog\/advanced-react-native-interview-questions-answers\/","title":{"rendered":"Advanced React Interview Questions for 2025: React &#038; React Native Mastery"},"content":{"rendered":"<h2>Introduction Advanced React Interview Questions for 2025<\/h2>\n<p data-start=\"344\" data-end=\"753\">React Native (also known as RN) is a popular JavaScript-based mobile app framework that allows you to build natively rendered <a href=\"https:\/\/www.netguru.com\/services\/react-native\" target=\"_blank\" rel=\"noopener\">mobile apps for iOS and Android<\/a> \u2014 all from <a href=\"https:\/\/www.netguru.com\/blog\/react-native-faq\" target=\"_blank\" rel=\"noopener\">a shared codebase<\/a>. As the mobile development landscape evolves, preparing with <strong>Advanced React Native Interview Questions<\/strong>\u00a0and <strong data-start=\"635\" data-end=\"680\">react native advanced interview questions<\/strong> becomes essential for developers aiming for senior or specialized roles.<\/p>\n<p data-start=\"755\" data-end=\"1111\">Originally released by Facebook in 2015, React Native quickly rose to prominence. Today, it powers global apps like Facebook, Instagram, and Skype. This success stems largely from the ability to write once and deploy across platforms, and from the rising demand for <strong data-start=\"1021\" data-end=\"1060\">advanced React Native app solutions<\/strong> that scale effectively in production environments.<\/p>\n<p data-start=\"1113\" data-end=\"1431\">Since React Native is built on top of <a href=\"https:\/\/www.netguru.com\/blog\/what-is-react-js\" target=\"_blank\" rel=\"noopener\">React \u2014 one of the most widely used JavaScript libraries<\/a> \u2014 knowledge of both frameworks is often tested together. Many interviews now combine <strong data-start=\"1293\" data-end=\"1331\">advanced React interview questions<\/strong> with <strong data-start=\"1337\" data-end=\"1382\">react native advanced interview questions<\/strong> to assess a developer\u2019s end-to-end capabilities.<\/p>\n<p data-start=\"1433\" data-end=\"1723\">This guide covers real-world <strong data-start=\"1462\" data-end=\"1501\">advanced React Native app solutions<\/strong>, component lifecycle mastery, performance tuning, and architecture strategies. Dive in and prepare with this curated collection of <strong data-start=\"1633\" data-end=\"1671\">advanced React interview questions<\/strong> and answers tailored for serious mobile developers.<\/p>\n<h2>React Native Advanced Interview Questions<\/h2>\n<p><a tabindex=\"0\">1. How can sensitive data be stored securely in React Native ?<\/a><\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">Most React Native data is stored in Async Storage. As an unencrypted, local form of storage, it\u2019s not suitable for storing sensitive data such as tokens and passwords.<\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">Alternatively, React Native Keychain offers a secure form of storage that also works similarly to Async Storage. For iOS, Keychain storage can be used to protect sensitive data, while Android developers can use Facebook Conceal and Android Keystone.<\/p>\n<p><a tabindex=\"0\">2. How can you resolve common React Native performance issues ?<\/a><\/p>\n<p>When performance issues occur, there are several solutions available to developers. For example, here are some solutions for a few common performance issues:<\/p>\n<ul>\n<li><strong>High CPU usage:<\/strong>Optimizing apps by compressing data, cutting out wasteful renders, and using cache storage will improve performance speed<\/li>\n<li><strong>Memory leak:<\/strong>Memory leak can be avoided by debugging, avoiding the use of console statements, and regularly checking code for inconsistencies<\/li>\n<li><strong>Slow navigation:<\/strong>Using React Navigation instead of other navigation tools like Navigator or NavigationExperimental will help soothe navigational issues<\/li>\n<\/ul>\n<p><a tabindex=\"0\">3. What are some differences between using React Native for iOS and for Android ?<\/a><\/p>\n<p>Around 85% of React Native code is cross-platform, which means that most processes are the same on both iOS and Android. However, there are a few minor differences. These include:<\/p>\n<ul>\n<li>iOS development uses Mac and Xcode, whereas Android development draws on Android SDK and an emulator<\/li>\n<li>Third-party plugins that don\u2019t offer native functionality will need to be used differently<\/li>\n<li>The bridging process can be slightly different when developing complex apps.<\/li>\n<\/ul>\n<p><a tabindex=\"0\">4. How do you ensure animations run smoothly in React Native apps ?<\/a><\/p>\n<p>Several steps can be taken to optimize animations in React Native. These include:<\/p>\n<ul>\n<li><strong>Use lazy loading<\/strong>so components are only rendered when in use<\/li>\n<li><strong>Remove animated values from the state<\/strong>to avoid unnecessary overhead<\/li>\n<li><strong>Use shouldComponentUpdate<\/strong>to fast-track the rendering process<\/li>\n<li><strong>Use useNativeDriver for Android<\/strong>to transfer all the animating work to the native layer<\/li>\n<\/ul>\n<p><a tabindex=\"0\">5. What steps would you take in React Native if you have an app that crashes continually ?<\/a><\/p>\n<p>Use a third-party error reporting integration to pull up an error report and further diagnose the bug. These plugins help collect, organize, and analyze crash reports and also provide quick fixes so the app can get back up and running. Popular error reporting plugins include:<\/p>\n<ul>\n<li>Bugsnag<\/li>\n<li>Crashlytics<\/li>\n<li>Sentry<\/li>\n<li>TestFairy<\/li>\n<li>Rollbar<\/li>\n<\/ul>\n<p><a tabindex=\"0\">6. How can Redux be implemented in React Native ?<\/a><\/p>\n<p>Redux is a useful state management tool. It can be implemented by following these steps:<\/p>\n<ol>\n<li>Install the necessary Redux packages online<\/li>\n<li>Create a Redux folder at the root of the app<\/li>\n<li>Within the Redux folder, add three files: actions.js, reducer.js, and store.js<\/li>\n<li>In the new reducer.js file, import &lt;combineReducers&gt; from \u2018redux\u2019<\/li>\n<li>In the store.js file, import &lt;createStore&gt; from \u2018redux\u2019 to create the store<\/li>\n<li>Import the store to the React Native app<\/li>\n<\/ol>\n<p><a tabindex=\"0\">7. What is the role of TouchableOpacity in React Native ?<\/a><\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">In React Native, TouchableOpacity is a wrapper used to change the transparency of a button. When used on a button, opacity reduces in response to touch, allowing users to see the background whenever they press it.<\/p>\n<p><a tabindex=\"0\">8. What are the differences between Flexbox in browser and in React Native ?<\/a><\/p>\n<p>Flexbox generally works in the same way in React Native as it does in CSS on the web. However, there are a few minor differences in the values. These include:<\/p>\n<ul>\n<li>The default value in React Native is column, whereas the default value for CSS is row<\/li>\n<li>The default value in React Native is flex-start, whereas the default value for CSS is stretch<\/li>\n<li>The default value in React Native is 0, whereas the default value for CSS is 1<\/li>\n<\/ul>\n<p><a tabindex=\"0\">9. What steps can you take to resolve persistent memory leak issues ?<\/a><\/p>\n<p>A memory leak occurs when memory that is no longer needed by an app remains in the app rather than being returned to the operating system. This is one of the most common causes of performance issues.<\/p>\n<p>In theory, memory management is handled automatically by the garbage collector. However, this process is still prone to errors. Debugging tools can be used to identify memory leak issues. Some of the most common causes for issues are:<\/p>\n<ul>\n<li>Timers and listeners in componentDidMount<\/li>\n<li>Inline styles<\/li>\n<li>Closure scope leaks<\/li>\n<li>The use of console.log<\/li>\n<\/ul>\n<p>Debugging can identify the root of the memory leak; once it has been removed, the issue should be resolved.<\/p>\n<p><a tabindex=\"0\">10. How can you optimize FlatList items in React Native ?<\/a><\/p>\n<p>There are several techniques for optimizing the performance of FlatList items. For example, we can:<\/p>\n<ul>\n<li>Avoid using 1080P HD images<\/li>\n<li>Optimize the maxToRenderPerBatch prop<\/li>\n<li>Use the getItemLayout prop<\/li>\n<li>Use the keyExtractor prop<\/li>\n<li>Use fewer views<\/li>\n<li>Optimize the windowSize prop<\/li>\n<\/ul>\n<p><a tabindex=\"0\">11. How are hot reloading and live reloading in React Native different ? <\/a><\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">Live reloading in React Native refreshes the entire app when a file changes, whereas hot reloading only refreshes the files that were changed.<\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">When hot reloading is used on an app, the state remains the same and the developer is returned to the page they started on. The opposite is true for live reloading.<\/p>\n<p><a tabindex=\"0\">12. When would you use ScrollView over FlatList and vice versa ?<\/a><\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">ScrollView loads all data items on one screen for scrolling purposes. All the data is stored on RAM, which can cause performance issues for large amounts of data.<\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">FlatList only displays items that are currently shown on the screen (10 by default), thus sidestepping any performance issues.<\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">Therefore, it is best to use FlatList for large datasets, whereas ScrollView can be used for smaller datasets.<\/p>\n<p><a tabindex=\"0\">13. How are vector icons used in React Native ?<\/a><\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">Vectors are an integral part of app design in React Native. They can initially be installed by running the following command: &lt;npm install react-native-vector-icons&gt;. Selected vector icons can then be imported into the React Native app for use.<\/p>\n<p><a tabindex=\"0\">14. When should setNativeProps be used in React Native ?<\/a><\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">In React Native, setNativeProps is used to change a component directly on a DOM node rather than in the app\u2019s state. While this can help to solve issues, it also makes code more difficult to work with in the future.<\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">It\u2019s considered a backup solution to performance issues linked to animations, and should only be used if setState and shouldComponent fail to resolve the problem.<\/p>\n<p><a tabindex=\"0\">15. What\u2019s the real cause behind performance issues in React Native ?<\/a><\/p>\n<p>The real cause behind React Native performance issues is that each thread (i.e Native and JS thread) is blazingly fast. The performance bottleneck in React Native app occurs when you\u2019re passing the components from one thread to another unnecessarily or more than required. A major thumb rule to avoid any kind of performance-related issue in React Native is to keep the passes over the bridge to a minimum.<\/p>\n<ul>\n<li>Native thread built for running Java\/ Kotlin, Swift\/ Objective C<\/li>\n<li>Javascript thread is the primary thread that runs everything from javascript-based animations to other UI components<\/li>\n<li>The bridge as the name suggests acts as an \u00a0intermediate communication point for the native and JS thread<\/li>\n<\/ul>\n<p><a tabindex=\"0\">16. List down some of the steps to optimize the application.<\/a><\/p>\n<ul>\n<li>Use Proguard to minimize the application size.(It does this by stripping parts of the React Native Java bytecode (and its dependencies) that your app is not using)<\/li>\n<li>Create reduced-sized APK files for specific CPU architectures. When you do that, your app users will automatically get the relevant APK file for their specific phone\u2019s architecture. This eliminates the need to keep JSCore binaries that support multiple architectures and consequently reduces the app size.<\/li>\n<li>Compress images and other graphic elements. Another option to reduce image size is using file types like APNG in place of PNG files.<\/li>\n<li>Don\u2019t store raw JSON data, \u00a0eIther we need to Compress it or convert it into static object IDs.<\/li>\n<li>Optimize native libraries.<\/li>\n<li>Optimize the number of state operations and remember to use pure and memoized components when needed<\/li>\n<li>Use Global State wisely for example worst-case scenario is when state change of single control like TextInput or CheckBox propagates render of the whole application. Use libraries like Redux or Overmind.js to handle your state management in a more optimized way.<\/li>\n<li>Use key attribute on list items, it helps React Native to pick which list to update when rendering a long list of data<\/li>\n<li>Use VirtualizedList, FlatList, and SectionList for large data sets.<\/li>\n<li>Clear all the active timers which may lead to heavy memory leakage issues.<\/li>\n<\/ul>\n<p><a tabindex=\"0\">17. Describe Memory leak Issue in React Native , how can it be detected and resolved ?<\/a><\/p>\n<p>In JavaScript memory is managed automatically by Garbage Collector (GC). In short, Garbage Collector is a background process that periodically traverses the graph of allocated objects and their references.<\/p>\n<p>If it happens to encounter a part of the graph that is not being referenced directly or indirectly from root objects (e.g., variables on the stack or a global object like window or navigator) that whole part can be deallocated from the memory.<br \/>\nIn React Native world each JS module scope is attached to a root object. Many modules, including React Native core ones, declare variables that are kept in the main scope (e.g., when you define an object outside of a class or function in your JS module).<\/p>\n<p>Such variables may retain other objects and hence prevent them from being garbage collected.<\/p>\n<p><strong>Some Causes of Memory Leak:<\/strong><\/p>\n<ul>\n<li>Unreleased timers\/listeners added in componentDidMount<\/li>\n<li>Closure scope leaks<\/li>\n<\/ul>\n<p><strong>Detecting memory leaks for IOS:<\/strong><\/p>\n<p>In Xcode,<\/p>\n<p>Go to XCode \u2192 Product \u2192 Profile (\u2318 + i)<\/p>\n<p>After that shows you all templates choose leaks.<\/p>\n<p><strong>Detecting memory leaks for Android :<\/strong><\/p>\n<p>Run React Native app normally (react-native run-android)<br \/>\nRun Android Studio<\/p>\n<p>On the menu,<br \/>\nclick Tools \u2192 Android \u2192 Enable ADB Integration<br \/>\nClick Tools \u2192 Android \u2192 Android Device Monitor<br \/>\nWhen Android Device Monitor shows up, click Monitor \u2192 Preferences<\/p>\n<p>There is also one more way in Android<br \/>\nPerf Monitor (Performance Monitor) is a good choice to use for android leak monitoring.<\/p>\n<pre data-start=\"1\" data-line-offset=\"0\"><code class=\"\" data-line=\"\">Import PerfMonitor from &#039;react-native\/Libraries\/Performance\/RCTRenderingPerf&#039;;\nPerfMonitor.toggle();\nPerfMonitor.start();\nsetTimeout(() =&gt; {\n PerfMonitor.stop();\n}, 20000);\n}, 5000);<\/code><\/pre>\n<p><a tabindex=\"0\">18. Is there any out of the box way storing sensitive data in React ? If yes which and if not how can this be achieved ?<\/a><\/p>\n<p>React Native does not come bundled with any way of storing sensitive data. However, there are pre-existing solutions for Android and iOS platforms.<\/p>\n<p><strong>iOS \u2013 Keychain Services<\/strong><br \/>\nKeychain Services allows you to securely store small chunks of sensitive info for the user. This is an ideal place to store certificates, tokens, passwords, and any other sensitive information that doesn\u2019t belong in Async Storage.<\/p>\n<p><strong>Android \u2013 Secure Shared Preferences#<\/strong><br \/>\nShared Preferences is the Android equivalent for a persistent key-value data store. Data in Shared Preferences is not encrypted by default, but Encrypted Shared Preferences wraps the Shared Preferences class for Android, and automatically encrypts keys and values.<\/p>\n<p><strong>Android \u2013 Keystore<\/strong><br \/>\nThe Android Keystore system lets you store cryptographic keys in a container to make it more difficult to extract from the device. In order to use iOS Keychain services or Android Secure Shared Preferences, you can either write a bridge yourself or use a library that wraps them for you and provides a unified API at your own risk. Some libraries to consider:<\/p>\n<ul>\n<li>Expo-secure-store<\/li>\n<li>React-native-keychain<\/li>\n<li>react-native-sensitive-info \u2013 secure for iOS, but uses Android Shared Preferences for Android (which is not secure by default). There is however a branch that uses Android Keystore.<\/li>\n<\/ul>\n<p><a tabindex=\"0\">19. What is Network Security and SSL Pinning ?<\/a><\/p>\n<p><strong>Understanding of SSL:<\/strong><\/p>\n<p>SSL (Secure Sockets Layer) and its successor, TLS (Transport Layer Security), are protocols for establishing authenticated and encrypted links between networked computers.<br \/>\nSSL\/TLS works by binding the identities of entities such as websites and companies to cryptographic key pairs via digital documents known as X.509 certificates. Each key pair consists of a private key and a public key. The private key is kept secure, and the public key can be widely distributed via a certificate.<\/p>\n<p><strong>Understanding of pinning\u00a0<\/strong><br \/>\nPinning is an optional mechanism that can be used to improve the security of a service or site that relies on SSL Certificates. Pinning allows specifying a cryptographic identity that should be accepted by users visiting site\/app<\/p>\n<p><strong>Why do we need SSL pinning?<\/strong><\/p>\n<p>One of the inherent risks to the SSL ecosystem is mis-issuance. This is when an unauthorized certificate is issued for a domain\/host you control. This can happen with both public and private PKIs (Public Key Infrastructure)<\/p>\n<p><strong>How is SSL pinning used in Mobile applications?<\/strong><br \/>\nWhen mobile applications communicate with the server, they typically use SSL to protect the transmitted data against tampering. By default SSL implementations used, apps trust any server with a certificate trusted by the Operating systems trust store, This store is a list of certificate authorities that are shipped with the operating system.<\/p>\n<p>With SSL pinning, however, the application is configured to reject all but one or few predefined certificates, whenever the application connects to a server, it compares the server certificate with the pinned certificate(s) , if and only if they match the server is trusted and SSL connection is established.<\/p>\n<p><a tabindex=\"0\">20. Explain setNativeProps. Does it create Performance issues and how is it used ?<\/a><\/p>\n<p>It is sometimes necessary to make changes directly to a component without using state\/props to trigger a re-render of the entire subtree. When using React in the browser, for example, you sometimes need to directly modify a DOM node, and the same is true for views in mobile apps. setNativeProps is the React Native equivalent to setting properties directly on a DOM node.<br \/>\nUse setNativeProps when frequent re-rendering creates a performance bottleneck.<\/p>\n<p>Direct manipulation will not be a tool that you reach for frequently; you will typically only be using it for creating continuous animations to avoid the overhead of rendering the component hierarchy and reconciling many views. setNativeProps is imperative and stores state in the native layer (DOM, UIView, etc.) and not within your React components, which makes your code more difficult to reason about. Before you use it, try to solve your problem with setState and shouldComponentUpdate.<\/p>\n<p><a tabindex=\"0\">21. How to make your React Native app feel smooth on animations ?<\/a><\/p>\n<p>The primary reason and an important one why well-built native apps feel so smooth are by avoiding expensive operations during interactions and animations. React Native has a \u00a0limitation that there is only a single JS execution thread, but you can use InteractionManager to make sure long-running work is scheduled to start after any interactions\/animations have completed.<\/p>\n<p>Applications can schedule tasks to run after interactions with the following:<\/p>\n<pre data-start=\"1\" data-line-offset=\"0\"><code class=\"\" data-line=\"\">InteractionManager.runAfterInteractions(() =&gt; {\n \/\/ ...long-running synchronous task...\n});<\/code><\/pre>\n<p><a tabindex=\"0\"> 22. What are the benefits of using React Native for building mobile applications ?<\/a><\/p>\n<p>There are following benefits of using React Native in mobile application development<\/p>\n<ol>\n<li>React Native enables a web developer to build mobile apps with Javascript.<\/li>\n<li>The developer doesn\u2019t need to learn complete new programming language java\/ Kotlin to develop Android App. Similarly, the developer doesn\u2019t need to be an expert in objective C or swift to develop IOS app anymore. Javascript is more than sufficient to build a mobile app for both Android and IOS. However, knowing java or swift helps the developer to write performance robust mobile app.<\/li>\n<li>With React Native, most of the code base can be shared between the Android app and the IOS app.<\/li>\n<li>With a single code base, effort in maintenance is reduced by many folds.<\/li>\n<li>With a single code base, features can be shipped much faster on both major mobile platform<\/li>\n<li>Developer having experience with ReactJs can quickly learn React Native. The learning curve for a developer is very low.<\/li>\n<li>App developed with React Native is not a web app running inside a mobile app. It is a real mobile app because it uses the same fundamental building blocks as regular IOS native app and Android app uses.<\/li>\n<li>React Native lets you build an app faster as it\u2019s tool gives hot reloading functionality out of the box which means we don\u2019t need to recompile app again and again on making changes.<\/li>\n<li>React Native gives the flexibility to use Native swift or java module with React Native application. So your app can get the best from both worlds.<\/li>\n<\/ol>\n<p><a tabindex=\"0\">23. How is React Native different from other frameworks for developing a mobile application ?<\/a><\/p>\n<p>Javascript developer always tried to explore platforms where Javascript can be used to build better user experiences. React native is not the first framework which enables web developers to build applications for the mobile platform. Ionic, Cordova were few very popular application framework which was used to develop a mobile application using web technologies. One major motivation towards this effort was having a seamless experience on all the platforms. Mobile application developed with React Native is different than alternate frameworks in the following ways:<\/p>\n<ol>\n<li>React Native app is a real mobile app, not a web app running inside a mobile app shell. Other alternative like Cordova, ionic run a web app in a web view.<\/li>\n<li>React Native app is converted into machine code which runs on mobile that is why it gives better performance than other alternatives.<\/li>\n<li>React Native mobile apps are more close to Native app development in comparison to other Javascript frameworks<\/li>\n<li>Mobile application built with React native has small bundle size in comparison to older hybrid application development framework.<\/li>\n<\/ol>\n<p><a tabindex=\"0\">24. What tool and skill set do you need to develop a mobile app in React Native ?<\/a><\/p>\n<p>Developer experience is one of the most important attributes of a framework. If getting started step with any framework is very difficult and very complex then the community will take lots of time to accept that framework. That is why React native has tried their best to simplify the getting started step for app development. To build a mobile app with React Native, one should have a good understanding of Javascript concepts and understanding of CSS helps in styling React Native app. React Native provide CLI (command line interface) which is used to bootstrap the mobile application.<\/p>\n<p>For IOS development Xcode and for Android app development, Android studio is required. Understanding of component driven development with ReactJs is also very beneficial in React Native app development. There is one more open source project named Expo CLI which provides a command line utility to easily start development of React native. It also provides barcode based approach to share the app within the team. Developer experience is pretty good for React native that is also one of the reasons for its huge popularity in the developer community.<\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><a tabindex=\"0\">25. What is component driven development and what are the benefits of using component driven development ?<\/a><\/p>\n<p style=\"line-height: 21.0pt; background: white; margin: 0in 0in 12.0pt 0in;\">Long time back, web developer realises that there are few elements which are frequently used in web development like drop down and different type of button. The developer started making CSS frameworks which provide already developed components. Bootstrap was first very popular CSS framework which helped web developer to build user experience very quickly. React also follows the same approach in web development.<\/p>\n<p style=\"line-height: 21.0pt; background: white; margin: 12.0pt 0in 0in 0in;\">Component driven development is a methodology where we break the complete UI design into several small reusable components and develop them independently. Then the complete UI is built by composing these small components. This methodology helps us write UI code in a modular way. UI development will be faster as we will be reusing components at multiple places. Less code also results in less effort in maintaining the code and also less number of bugs. So we can say that component driven development was already there in web development but React JS made it very popular in the developer community. New frameworks like Angular4+ are also following the same methodology to develop the web application.<\/p>\n<p><a tabindex=\"0\">26. What is the difference between a functional component and a class-based component ?<\/a><\/p>\n<p>Though we can implement in both functional and class-based way, there are few fundamental differences between the two of them:<\/p>\n<ol>\n<li>Functional component can\u2019t have stated ( before React hooks era ). It renders component only based on props passed. A class-based component can have a local state which can be helpful in building a bigger component<\/li>\n<li>Functional component access directly via props argument passed. In a class-based component, props are accessible via this.props.<\/li>\n<li>A class-based component is a more complex structure. It is an instance of a class derived from React. Component class. The class must implement a render() member function which returns a React component to be rendered<\/li>\n<li>The class-based component can also use lifecycle methods but functional component can\u2019t use lifecycle methods.<\/li>\n<li>Functional components are a very light weighted component in comparison to class-based react component<\/li>\n<\/ol>\n<p><a tabindex=\"0\">27. How Virtual DOM works in React Native ?<\/a><\/p>\n<p>Virtual DOM is a lightweight JavaScript object, which is an in-memory representation of a real DOM. It is an intermediary step between the render function being called and the displaying of elements on the screen. It is similar to a node tree, which lists the elements, their attributes, and content as objects and their properties. The render function creates a node tree of the React components and then updates this node tree in response to the mutations in the data model caused by various actions done by the user or by the system.<\/p>\n<p><strong>Virtual DOM works in three steps:<\/strong><\/p>\n<ul>\n<li>Whenever any data changes in the React App, the entire UI is re-rendered in Virtual DOM representation.<\/li>\n<li>Now, the difference between the previous DOM representation and the new DOM is calculated.<\/li>\n<li>Once the calculations are completed, the real DOM updated with only those things which are changed.<\/li>\n<\/ul>\n<p><a tabindex=\"0\">28. How do you create basic text input in React Native ?<\/a><\/p>\n<p style=\"line-height: 21.0pt; background: white; vertical-align: baseline; margin: 0in 0in .25in 0in;\">The insertion of basic text in React Native apps is handled by the Text and TextInput components. TextInput allows users to type on the app. We can implement it using the following syntax: &lt;import { Text, TextInput, View } from \u2018react-native\u2019&gt;.<\/p>\n<h3 data-start=\"341\" data-end=\"394\">What Are <em data-start=\"356\" data-end=\"393\">Advanced React Native App Solutions<\/em>?<\/h3>\n<p data-start=\"396\" data-end=\"650\">These are strategies, tools, or patterns that help developers build <strong data-start=\"464\" data-end=\"484\">production-ready<\/strong>, <strong data-start=\"486\" data-end=\"499\">efficient<\/strong>, and <strong data-start=\"505\" data-end=\"517\">scalable<\/strong> mobile apps using React Native. They go beyond just building screens \u2014 they focus on performance, architecture, and maintainability.<\/p>\n<hr data-start=\"652\" data-end=\"655\" \/>\n<h3 data-start=\"657\" data-end=\"725\">\ud83d\udd0d Common Areas Included in Advanced React Native App Solutions:<\/h3>\n<div class=\"_tableContainer_16hzy_1\">\n<div class=\"_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse\" tabindex=\"-1\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"727\" data-end=\"2143\">\n<thead data-start=\"727\" data-end=\"856\">\n<tr data-start=\"727\" data-end=\"856\">\n<th data-start=\"727\" data-end=\"763\" data-col-size=\"sm\"><strong data-start=\"729\" data-end=\"741\">Category<\/strong><\/th>\n<th data-start=\"763\" data-end=\"856\" data-col-size=\"md\"><strong data-start=\"765\" data-end=\"790\">Examples \/ Techniques<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"986\" data-end=\"2143\">\n<tr data-start=\"986\" data-end=\"1113\">\n<td data-start=\"986\" data-end=\"1021\" data-col-size=\"sm\"><strong data-start=\"988\" data-end=\"1008\">State Management<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"1021\" data-end=\"1113\">Redux Toolkit, Zustand, Recoil, Jotai, React Query for async state<\/td>\n<\/tr>\n<tr data-start=\"1114\" data-end=\"1241\">\n<td data-start=\"1114\" data-end=\"1149\" data-col-size=\"sm\"><strong data-start=\"1116\" data-end=\"1130\">Navigation<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"1149\" data-end=\"1241\">Deep linking, nested navigators, dynamic routing with React Navigation<\/td>\n<\/tr>\n<tr data-start=\"1242\" data-end=\"1369\">\n<td data-start=\"1242\" data-end=\"1277\" data-col-size=\"sm\"><strong data-start=\"1244\" data-end=\"1272\">Performance Optimization<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"1277\" data-end=\"1369\">Memoization, useCallback, FlatList optimizations, lazy loading, code splitting<\/td>\n<\/tr>\n<tr data-start=\"1370\" data-end=\"1497\">\n<td data-start=\"1370\" data-end=\"1405\" data-col-size=\"sm\"><strong data-start=\"1372\" data-end=\"1397\">Architecture Patterns<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"1405\" data-end=\"1497\">Clean Architecture, MVVM, Hexagonal Architecture, Feature-Sliced Design<\/td>\n<\/tr>\n<tr data-start=\"1498\" data-end=\"1625\">\n<td data-start=\"1498\" data-end=\"1533\" data-col-size=\"sm\"><strong data-start=\"1500\" data-end=\"1529\">Native Module Integration<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"1533\" data-end=\"1625\">Bridging native iOS\/Android modules, using custom native UI components<\/td>\n<\/tr>\n<tr data-start=\"1626\" data-end=\"1758\">\n<td data-start=\"1626\" data-end=\"1661\" data-col-size=\"sm\"><strong data-start=\"1628\" data-end=\"1647\">Testing &amp; CI\/CD<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"1661\" data-end=\"1758\">E2E testing (Detox), unit testing (Jest), GitHub Actions or Bitrise for continuous deployment<\/td>\n<\/tr>\n<tr data-start=\"1759\" data-end=\"1887\">\n<td data-start=\"1759\" data-end=\"1794\" data-col-size=\"sm\"><strong data-start=\"1761\" data-end=\"1788\">Offline-first Solutions<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"1794\" data-end=\"1887\">SQLite, WatermelonDB, Realm with sync handling<\/td>\n<\/tr>\n<tr data-start=\"1888\" data-end=\"2015\">\n<td data-start=\"1888\" data-end=\"1923\" data-col-size=\"sm\"><strong data-start=\"1890\" data-end=\"1904\">Animations<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"1923\" data-end=\"2015\">Reanimated 2, Gesture Handler, smooth transitions, shared element transitions<\/td>\n<\/tr>\n<tr data-start=\"2016\" data-end=\"2143\">\n<td data-start=\"2016\" data-end=\"2051\" data-col-size=\"sm\"><strong data-start=\"2018\" data-end=\"2043\">Security Enhancements<\/strong><\/td>\n<td data-col-size=\"md\" data-start=\"2051\" data-end=\"2143\">Secure storage (Keychain\/Keystore), code obfuscation, API encryption<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div><\/div>\n<div class=\"sticky end-(--thread-content-margin) h-0 self-end select-none\">\n<div class=\"absolute end-0 flex items-end\">\n<figure id=\"attachment_9707\" aria-describedby=\"caption-attachment-9707\" style=\"width: 1536px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-9707\" src=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions.png\" alt=\"advanced react interview questions, react native advanced interview questions , advanced react native app solutions\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions.png 1536w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions-300x200.png 300w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions-1024x683.png 1024w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions-768x512.png 768w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions-332x221.png 332w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions-664x443.png 664w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions-688x459.png 688w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions-1044x696.png 1044w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2023\/12\/Advanced-React-Native-App-solutions-1400x933.png 1400w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><figcaption id=\"caption-attachment-9707\" class=\"wp-caption-text\">Advanced React Native App solutions<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"2145\" data-end=\"2148\" \/>\n<h3 data-start=\"2150\" data-end=\"2174\">\ud83e\udde0 Example Use Case:<\/h3>\n<blockquote data-start=\"2175\" data-end=\"2461\">\n<p data-start=\"2177\" data-end=\"2461\">A fintech app using <strong data-start=\"2197\" data-end=\"2213\">React Native<\/strong> needs offline transaction support, biometric login, and animated charts. Building this involves <strong data-start=\"2310\" data-end=\"2349\">advanced React Native app solutions<\/strong> \u2014 like secure native storage, React Native Reanimated, and local SQLite caching with Redux middleware for sync.<\/p>\n<\/blockquote>\n<h3 data-start=\"100\" data-end=\"120\">\ud83d\udcda\u00a0Related Reads<\/h3>\n<ul data-start=\"122\" data-end=\"738\">\n<li data-start=\"122\" data-end=\"225\">\n<p data-start=\"124\" data-end=\"225\"><a class=\"\" href=\"https:\/\/www.wikitechy.com\/hr-interview-questions\/\" target=\"_new\" rel=\"noopener\" data-start=\"124\" data-end=\"223\">Top HR Interview Questions and Answers to Know<\/a><\/p>\n<\/li>\n<li data-start=\"226\" data-end=\"350\">\n<p data-start=\"228\" data-end=\"350\"><a class=\"\" href=\"https:\/\/www.wikitechy.com\/tutorials\/csharp\/csharp-interview-questions\" target=\"_new\" rel=\"noopener\" data-start=\"228\" data-end=\"348\">Essential C# Interview Questions for Developers<\/a><\/p>\n<\/li>\n<li data-start=\"351\" data-end=\"490\">\n<p data-start=\"353\" data-end=\"490\"><a class=\"\" href=\"https:\/\/www.kaashivinfotech.com\/blog\/experience-sql-interview-questions\/\" target=\"_new\" rel=\"noopener\" data-start=\"353\" data-end=\"488\">Advanced SQL Interview Questions for Experienced Candidates<\/a><\/p>\n<\/li>\n<li data-start=\"491\" data-end=\"631\">\n<p data-start=\"493\" data-end=\"631\"><a class=\"\" href=\"https:\/\/www.kaashivinfotech.com\/blog\/cloud-computing-interview-questions\/\" target=\"_new\" rel=\"noopener\" data-start=\"493\" data-end=\"629\">Cloud Computing Interview Questions for Beginners &amp; Experts<\/a><\/p>\n<\/li>\n<li data-start=\"632\" data-end=\"738\">\n<p data-start=\"634\" data-end=\"738\"><a class=\"\" href=\"https:\/\/www.kaashivinfotech.com\/adgajsgdgdsgd\/\" target=\"_new\" rel=\"noopener\" data-start=\"634\" data-end=\"738\">CSE Interview Questions for Computer Science Graduates<\/a><\/p>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"Introduction Advanced React Interview Questions for 2025 React Native (also known as RN) is a popular JavaScript-based mobile&hellip;","protected":false},"author":2,"featured_media":5837,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[724],"tags":[1215,1207,738,727,729,1216,1200,732,1201,1211,1199,1196,1197,1198,1213,1214],"class_list":["post-3448","post","type-post","status-publish","format-standard","has-post-thumbnail","category-interview-questions","tag-advanced-react-interview-questions","tag-frontend-interview-questions","tag-interview","tag-interview-questions","tag-javascript-interview-questions","tag-react","tag-react-interview","tag-react-interview-questions","tag-react-interview-questions-and-answers","tag-react-js-interview-questions-and-answers","tag-react-native","tag-react-native-interview-questions","tag-react-native-interview-questions-and-answers","tag-react-native-interview-questions-for-freshers","tag-reactjs-interview-questions","tag-top-javascript-interview-questions","cs-entry"],"_links":{"self":[{"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/posts\/3448","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/comments?post=3448"}],"version-history":[{"count":10,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/posts\/3448\/revisions"}],"predecessor-version":[{"id":9711,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/posts\/3448\/revisions\/9711"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/media\/5837"}],"wp:attachment":[{"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/media?parent=3448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/categories?post=3448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/tags?post=3448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}