# Performance Optimization (React Native) > FlatList optimization, memo, useMemo/useCallback, Hermes, profiling, bundle size - 24 interview questions - Senior - [Interview Questions: React Native](https://sharpskill.dev/en/technologies/react-native/interview-questions.md) ## 1. What is the main role of React.memo in React Native performance optimization? **Answer** React.memo is a Higher-Order Component that memoizes the render result of a functional component. It prevents unnecessary re-renders by comparing current props with previous ones (shallow comparison by default). If props haven't changed, React reuses the memoized result instead of re-rendering the component, which significantly improves performance in lists or complex component trees. ## 2. Which FlatList property significantly optimizes scrolling by providing item dimensions in advance? **Answer** getItemLayout is an optional FlatList property that allows pre-calculating the height, width, and offset of each item. This prevents React Native from dynamically measuring each item, which considerably improves scroll performance, especially when jumping to a specific index with scrollToIndex. This optimization is particularly useful when all items have the same size. ## 3. What is the main difference between useMemo and useCallback in terms of optimization? **Answer** useMemo memoizes the result of an expensive calculation and returns that computed value, while useCallback memoizes a function itself and returns that function. useMemo is useful for avoiding heavy recalculations on each render, whereas useCallback is essential for avoiding recreating functions passed as props to memoized child components, which would break their React.memo optimization. ## 21 more questions available - What is Hermes and what is its main advantage for React Native applications? - Why is it crucial to provide a stable keyExtractor function to FlatList? Sign up for free: https://sharpskill.dev/en/login ## Other React Native interview topics - [JavaScript Essentials](https://sharpskill.dev/en/technologies/react-native/interview-questions/javascript-essentials.md): 25 questions, Junior - [React Fundamentals](https://sharpskill.dev/en/technologies/react-native/interview-questions/react-fundamentals.md): 20 questions, Junior - [React Native Basics](https://sharpskill.dev/en/technologies/react-native/interview-questions/react-native-basics.md): 22 questions, Junior - [React Hooks](https://sharpskill.dev/en/technologies/react-native/interview-questions/react-hooks.md): 20 questions, Junior - [TypeScript for React & React Native](https://sharpskill.dev/en/technologies/react-native/interview-questions/typescript-for-react-native.md): 22 questions, Junior - [React Native Components & API](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-components-api.md): 20 questions, Junior - [React Native Styling & Layout](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-styling-layout.md): 18 questions, Junior - [React Native Navigation](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-navigation.md): 22 questions, Mid-Level - [React Native State Management](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-state-management.md): 24 questions, Mid-Level - [React Native Networking & API](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-networking-api.md): 20 questions, Mid-Level - [Data Persistence](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-data-persistence.md): 20 questions, Mid-Level - [Forms & Validation](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-forms-validation.md): 18 questions, Mid-Level - [React Native Animations](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-animations.md): 22 questions, Mid-Level - [Native Modules & Bridge](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-native-modules.md): 20 questions, Mid-Level - [Platform-Specific Code](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-platform-specific-code.md): 18 questions, Mid-Level - [Permissions & Device APIs](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-permissions-apis.md): 20 questions, Mid-Level - [Push Notifications](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-push-notifications.md): 18 questions, Mid-Level - [React Native Testing](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-testing.md): 20 questions, Mid-Level - [React Native Debugging](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-debugging.md): 18 questions, Mid-Level - [Build & Deployment](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-build-deployment.md): 20 questions, Mid-Level - [Expo vs React Native Bare](https://sharpskill.dev/en/technologies/react-native/interview-questions/expo-vs-bare-rn.md): 18 questions, Mid-Level - [Memory Management](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-memory-management.md): 20 questions, Senior - [Architecture Patterns](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-architecture-patterns.md): 22 questions, Senior - [React Native New Architecture](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-new-architecture.md): 24 questions, Senior - [Security Best Practices](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-security-best-practices.md): 20 questions, Senior - [Offline-First Architecture](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-offline-first.md): 20 questions, Senior - [React Native CI/CD](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-ci-cd.md): 20 questions, Senior - [Monorepo & Code Sharing](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-monorepo-architecture.md): 18 questions, Senior - [Advanced Topics](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-advanced-topics.md): 22 questions, Senior - [App Lifecycle & Background Execution](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-app-lifecycle-background.md): 20 questions, Mid-Level - [Authentication & Session Management](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-auth-session-management.md): 22 questions, Mid-Level - [Monitoring & Crash Reporting](https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-monitoring-crash-reporting.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/en/technologies/react-native/interview-questions/rn-performance-optimization