Next.js, revalidate, почему данные не обновились

Next.js, revalidate, почему данные не обновились

В Next.js есть момент, который хорошо знаком после первых экспериментов с App Router. Страница уже пересчиталась, reload прошёл, а данные на экране выглядят старыми. Часто причина в том, что включён revalidate, а значит у ответа есть окно свежести.

Практически это означает, что пока окно не истекло, Next.js может отдавать прежние данные из Data Cache. Поэтому новый рендер страницы и новый ответ от API не обязаны происходить одновременно. Именно здесь обычно и появляется ощущение, что данные не обновились, хотя приложение ведёт себя в рамках выбранного режима.

Это полезно помнить при работе со списками, витринами и каталогами. revalidate нужен не для постоянной свежести, а для предсказуемого компромисса между свежестью данных, скоростью ответа и нагрузкой на источник.

Статья на Хабр

Проект: Goods Finder