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