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-заголовков.