Итоги курса
Курс о данных и состоянии в React Native.
Что ты узнал
- Fetch и axios — запросы, interceptors, токены
- TanStack Query — кеш, refetch, офлайн
- AsyncStorage — настройки, кеш, SecureStore для токенов
- Формы и API — валидация, отправка, ошибки
- Офлайн-режим — NetInfo, очередь, оптимистичные обновления
- Pull to refresh и пагинация —
useInfiniteQuery,onEndReached - Глобальное состояние — Zustand, Redux, Context
- Синхронизация — invalidation, focus, события
- Кеширование — staleTime, persist, prefetch
- WebSocket — real-time, переподключение, интеграция
- Тестирование — MSW, Testing Library
Ключевые идеи
Серверные данные — в TanStack Query. Не в Zustand, не в Context.
Клиентское состояние — в Zustand. Корзина, тема, настройки.
Токены — в SecureStore. Никогда в AsyncStorage.
Офлайн — обязателен. Мобильные приложения работают в метро, лифте, деревне.
Оптимистичные обновления. UI мгновенный, синхронизация в фоне.
Refetch on focus. Данные свежие при возврате на экран.
Persist для кеша. Приложение открывается офлайн — данные из кеша.
Частые ошибки
- Токены в AsyncStorage
- Нет
AbortController - Данные сервера в Zustand
- Нет обработки офлайн
- Не инвалидировать после мутаций
- Inline-функции в
FlatList - Нет
onEndReachedThreshold - Не тестировать на реальном устройстве с плохой сетью
Что дальше
- Мобильная специфика — камера, уведомления, публикация
Полезные ссылки
- TanStack Query: tanstack.com/query
- Zustand: github.com/pmndrs/zustand
- AsyncStorage: react-native-async-storage.github.io
- SecureStore: docs.expo.dev/versions/latest/sdk/securestore
- NetInfo: github.com/react-native-netinfo/react-native-netinfo
- MSW: mswjs.io
Заключение
Данные — сердце мобильного приложения. TanStack Query даёт кеш, refetch, офлайн. SecureStore защищает токены. Zustand хранит клиентское состояние. WebSocket — real-time. Освоив это, ты можешь строить приложения, которые работают в любых условиях. Помни: тестируй офлайн, кэшируй разумно, не храни пароли в AsyncStorage.