Вопрос проверяет понимание проблем с актуальностью данных при использовании библиотеки SWR для кэширования и синхронизации данных.
SWR (stale-while-revalidate) — это стратегия кэширования, при которой сначала показываются кэшированные (возможно, устаревшие) данные, а затем в фоне выполняется запрос на обновление. Это может приводить к ситуациям, когда пользователь видит неактуальную информацию.
import useSWR from 'swr';
function Profile() {
const { data, error } = useSWR('/api/user', fetcher, {
revalidateOnFocus: true,
refreshInterval: 5000, // обновление каждые 5 секунд
});
if (error) return <div>Ошибка загрузки</div>;
if (!data) return <div>Загрузка...</div>;
return <div>Привет, {data.name}</div>;
}refreshInterval для периодического обновления.mutate для ручного обновления после мутаций.revalidateOnFocus и revalidateOnReconnect.dedupingInterval для предотвращения дублирующих запросов.Вывод: SWR удобен для кэширования и быстрого отображения данных, но требует тщательной настройки параметров валидации и обработки мутаций, чтобы избежать проблем с актуальностью. Применяйте его в проектах, где допустима небольшая задержка обновления данных, и комбинируйте с ручной синхронизацией для критичных операций.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию