intermediate
SWR
Применяйте stale-while-revalidate, ключи кэша, триггеры revalidation, mutation и лёгкую загрузку данных.
SWR реализует stale-while-revalidate: сразу показать кэш, в фоне перепроверить. `useSWR(key, fetcher)` дедуплицирует запросы и по умолчанию refetch на focus/reconnect.
const { data, error, isLoading, mutate } = useSWR('/api/user', fetcher);
// mutate(localData, false) — локальный optimistic update без revalidate
| Возможность | Дефолт SWR | |-------------|------------| | Ключ кэша | Строка или tuple из key hook | | Revalidate | Focus, reconnect, опциональный interval | | Mutations | `mutate` для локальных обновлений кэша |
По сравнению с TanStack Query API SWR компактнее; сложные графы инвалидации и инструменты mutations богаче в TanStack Query. Выбор — по нуждам команды и сложности кэша.
На интервью: ключ SWR = идентичность fetch; когда `mutate` лучше refetch.
Типовые ошибки: один key для разных fetcher, нет обработки ошибок, optimistic mutate без отката.
Чеклист:
- Стабильные ключи на ресурс + параметры.
- Настройте триггеры revalidate под UX.
- mutate для optimistic сценариев.
- Глобальный fetcher для auth-заголовков.