Получение данных с помощью маршрутов nextjs 'catch all'
С nextjs 10 у вас может быть маршрут catch all, который выглядит примерно так
[...id].tsx
. Идея в том, что это позволит создавать динамические страницы. Так что он должен соответствовать
/example
,
/example/new
,
/example/new/latest
и т.п.
Проблема, с которой я столкнулся, заключается в том, что определенные согласованные маршруты (например,
/example/new
) могут потребоваться дополнительные данные для правильного рендеринга. Поскольку у меня действительно есть только один файл в моем
pages
папка, у меня есть доступ только к одной
getStaticProps
вызов. Получение всех возможных данных для всех возможных маршрутов кажется довольно расточительным.
Получение данных на стороне сервера на уровне компонентов решило бы его проблему, но, похоже, это не поддерживается в nextjs.
Есть ли рекомендуемый способ обойти это? Условная выборка данных на основе контекста внутри
getStaticProps
?
1 ответ
Где вы должны получать данные, зависит от характера ваших данных. Также, когда пользователю нужны данные. Вы можете использовать
getStaticProps
,
getServerSideProps
или получить данные на стороне клиента. См. Документацию, чтобы узнать о различиях между методами.