Да, можно использовать динамические c маршруты при использовании stati c -site-generation со следующим js. Вы должны использовать метод выборки данных getStaticProps
для извлечения необходимых данных на основе параметра маршрута c Dynami. Кроме того, вы должны использовать другую функцию getStaticPaths
для создания списка paths
, для которого следующий js будет строить stati c страницы во время сборки. Например,
Предположим, для страницы /pages/articles/[articleId].js
. Вот как может выглядеть псевдокод для вас.
// you have to generate and return a list of paths
export const getStaticPaths = async () => {
const articles = await /*Fetch the articles from backend or make a db query*/
const paths = articles.map(article => ({ params: { articleId: article.id }}));
return {
paths,
fallback: false
}
}
export const getStaticProps = async (ctx) => {
const articleId = ctx.params.articleId;
// fetch the data using the article id and return as props
return {
props: /* fetched data */
}
}
// create the page component and export it as the default export
Подробнее об этом можно прочитать в docs . Имейте в виду, потому что для fallback
установлено значение false
next js, будет отображаться страница 404
для любого пути, который не возвращается из функции getStaticPaths
, вы можете прочитать о fallback
здесь .