Next.js - Как показать имя сообщения в URL-адресе вместо идентификатора и сделать его уникальным?

Я искал это, но смог найти только примеры в Laravel и PHP, и мне нужно знать, как это сделать с Next.js.

Все, что я знаю, это то, что я могу делать динамические маршруты в Next.js обычным способом, вот так...

/pages/post/[postId] что переведет на /pages/post/23435 например, и таким образом, если у кого-то есть URL-адрес, я мог бы просто взять [postId] с участием router.query и может достаточно просто показать правильное сообщение пользователю.

Но что, если я хочу отображать имя сообщения в URL-адресе вместо идентификатора? точно так же, как Удеми делает тире между словами...

https://www.udemy.com/course/your-custom-react-component/learn/lecture/

И в то же время, если у кого-то есть этот URL, я все равно мог бы показать им правильный пост?

Я знаю, что могу просто сделать /pages/post/[postName] и отображать имя сообщения в URL-адресе, но оно не будет уникальным и не сможет отображать правильное сообщение.

Как я могу это сделать?

1 ответ

Вы можете сделать это с postName как вы предлагаете, а затем позаботьтесь о том, чтобы имена постов были уникальными и каждое из них соответствовало postId (это то, с чем вам нужно иметь дело на вашей стороне; поэтому в своей базе данных вы должны создать уникальный слаг для каждого postName)

Другое решение - показать и имя, и идентификатор, например /pages/post/[postName]/[postId]. Вы можете использовать несколько параметров, проверьте https://nextjs.org/docs/routing/dynamic-routes

Другие вопросы по тегам