Next js имеет маршрутизацию на основе файловой системы. Чтобы создать маршрут Dynami c для приложения, вам просто нужно создать файл js / ts с именем, похожим на [slug].js
(где slug будет параметром маршрута для маршрута c) в pages
каталог. В этом файле вы можете записать все logi c для data-fetching
и экспортировать компонент React в качестве экспорта по умолчанию, который будет использоваться для рендеринга страницы.
Для вашего варианта использования структура каталогов и некоторые псевдокод для страницы может выглядеть примерно так:
// directory structure
- pages/
- test/
- [slug].js
In [slug].js
В приведенном ниже примере используется getServerSideProps
как метод выборки данных, который будет использоваться для извлечения данных. требуется для страницы по запросу для этой страницы от клиента.
// data-fetching methods
export const getServerSideProps = async (ctx) => {
// you have access to the route param slug in the ctx object
const slug = ctx.params.slug
// fetch the data required for the page by a database query or from a remote API
// return the fetched data as props
return {
props: /* fetched-data */
}
}
// the page component
const SomeDynamicPage = (props) => {
// props will contain the data that was returned from the data-fetching method-
// getServerSideProps
return (
<>
<h1>Some page</h1>
<div>
/* some content based on the received props*/
</div>
</>
)
}
export default SomeDynamicPage;
Существуют дополнительные методы выборки данных (getStaticProps
, getStaticPaths
, getInitialProps
), которые могут быть полезны в зависимости от использования случаи. Подробнее о выборке данных и динамическом c маршрутах читайте в следующих js документах.