Ответ вслух Middle Состояние и данные спрашивают часто обновлено

Управление состоянием в RN-приложении

Вопрос

Как вы организуете состояние и работу с данными в React Native-приложении?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Делю состояние на серверное и клиентское. Серверное отдаю TanStack Query: ключи по параметрам, разумный staleTime, инвалидация после мутаций, useInfiniteQuery для лент.

Что должно прозвучать в ответе

  • Разделение: серверное состояние и клиентское

  • Серверное: TanStack Query или RTK Query, ключи, staleTime, инвалидация

  • Клиентское: `useState` локально, Zustand или Redux Toolkit для общего, Context для редко меняющегося

  • Селекторы и разделение сторов против лишних рендеров

  • Связь с платформой: обновление при возврате из фона и восстановлении сети

  • Персистентность: MMKV для стора и кеша запросов

Что могут спросить следом

  • Почему не стоит копировать данные API в Redux?
  • Как обновить данные после мутации?
  • Что делать с формами?

Разбор

Образцовый ответ: «Делю состояние на серверное и клиентское. Серверное отдаю TanStack Query: ключи по параметрам, разумный staleTime, инвалидация после мутаций, useInfiniteQuery для лент. В RN подключаю focusManager к AppState и onlineManager к NetInfo, чтобы данные обновлялись при возврате и восстановлении сети. Клиентское держу как можно ближе к месту использования: useState для экрана, Zustand для общего, вроде корзины до оформления и настроек, с селекторами против лишних рендеров. Context только для редко меняющегося: тема, текущий пользователь. Стор и кеш запросов сохраняю в MMKV, чтобы приложение открывалось с данными. Формы на React Hook Form, их состояние в стор не тащу»

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.