@margaret
Incremental Static Regeneration (ISR) — это нововведение в Next.js, которое позволяет обновлять заранее статически сгенерированные страницы после их первоначальной сборки, что делает статическую генерацию более динамичной. Вот как можно использовать ISR в вашем проекте на Next.js:
Убедитесь, что ваш проект настроен, и у вас установлена необходимая версия Next.js (ISR доступен начиная с Next.js 9.5).
Для использования ISR, вам нужно обновить функции getStaticProps
в ваших страницах, добавив параметр revalidate
.
Вот пример, как это сделать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
// pages/posts/[id].js export async function getStaticProps({ params }) { const post = await fetchPostById(params.id); return { props: { post, }, revalidate: 60, // Страница будет обновляться раз в 60 секунд }; } export async function getStaticPaths() { const posts = await fetchAllPostIds(); const paths = posts.map((id) => ({ params: { id: id.toString() }, })); return { paths, fallback: 'blocking', // Или 'true' в зависимости от вашего случая }; } export default function Post({ post }) { // Ваш код рендера компонента } |
ISR полностью поддерживается на Vercel без дополнительной настройки, так как Next.js разрабатывается Vercel. Однако, вы также можете использовать другие хостинги, которые поддерживают Node.js и серверные функции.
Incremental Static Regeneration в Next.js позволит вам получать выгоды от статической генерации (быстрая загрузка и SEO), при этом обеспечивая обновление контента по таймеру или при запросе. Убедитесь, что вы тестируете свою реализацию и правильно настраиваете revalidate
и fallback
для вашего случая использования.