Оптимізація продуктивності
Оптимізація FlatList, memo, useMemo/useCallback, Hermes, профілювання, розмір bundle
1Яка основна роль React.memo в оптимізації продуктивності React Native?
Яка основна роль React.memo в оптимізації продуктивності React Native?
Відповідь
React.memo — це Higher-Order Component, який мемоізує результат рендерингу функціонального компонента. Він запобігає непотрібним повторним рендерам, порівнюючи поточні props з попередніми (за замовчуванням shallow comparison). Якщо props не змінилися, React повторно використовує мемоізований результат замість повторного рендерингу компонента, що значно покращує продуктивність у списках або складних деревах компонентів.
2Яка властивість FlatList значно оптимізує прокрутку, надаючи розміри елементів заздалегідь?
Яка властивість FlatList значно оптимізує прокрутку, надаючи розміри елементів заздалегідь?
Відповідь
getItemLayout — це необов'язкова властивість FlatList, яка дозволяє заздалегідь обчислити висоту, ширину та offset кожного елемента. Це позбавляє React Native необхідності динамічно вимірювати кожен елемент, що значно покращує продуктивність прокрутки, особливо під час переходу до конкретного індексу за допомогою scrollToIndex. Ця оптимізація особливо корисна, коли всі елементи мають однаковий розмір.
3Яка основна різниця між useMemo та useCallback з точки зору оптимізації?
Яка основна різниця між useMemo та useCallback з точки зору оптимізації?
Відповідь
useMemo мемоізує результат витратного обчислення й повертає це обчислене значення, тоді як useCallback мемоізує саму функцію й повертає цю функцію. useMemo корисний для уникнення важких повторних обчислень під час кожного рендеру, а useCallback необхідний, щоб уникнути повторного створення функцій, які передаються як props до мемоізованих дочірніх компонентів, оскільки це зруйнувало б їхню оптимізацію React.memo.
Що таке Hermes і яка його основна перевага для застосунків React Native?
Чому критично важливо надавати FlatList стабільну функцію keyExtractor?
+21 питань зі співбесід
Інші теми співбесід React Native
Основи JavaScript
Основи React
Основи React Native
React Hooks
TypeScript для React та React Native
Компоненти та API React Native
Стилізація та макет у React Native
Навігація в React Native
Управління станом у React Native
Networking та API в React Native
Збереження даних
Форми та валідація
Анімації React Native
Native Modules & Bridge
Код, специфічний для платформи
Дозволи та API пристрою
Push Notifications
Тестування React Native
Налагодження React Native
Build & Deployment
Expo vs React Native Bare
Управління пам'яттю
Architecture Patterns
React Native New Architecture
Найкращі практики безпеки
Offline-First Architecture
CI/CD React Native
Monorepo та спільне використання коду
Складні теми
Життєвий цикл застосунку та фонове виконання
Автентифікація та керування сесіями
Monitoring & Crash Reporting
Опануй React Native для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно