@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 для вашего случая использования.