Je suis un débutant pour NextJS , il semble si bon à la première impression. Mais après lui avoir donné une chance, j'ai rencontré des problèmes comme le routage d'URL avec des paramètres personnalisés tels que react-router .
https://url.com/users?id:123
https://url.com/users/123
Dans react-router Il a un exemple parfait ici https://reacttraining.com/react-router/web/example/url-params
cet exemple vous aidera à définir vos itinéraires nommés paramétrés. il utilise nest/routes et vous permet de définir vos routes de préférence personnalisées. j'espère que cela vous aidera.
https://github.com/zeit/next.js/tree/master/examples/with-next-routes
Vous pouvez utiliser la fonction as
de next/link
:
<Link prefetch as={`/product/${slug}`} href={`/product?slug=${slug}`}>
Le lien sur le navigateur apparaîtra sous la forme /product/slug
Qui correspond en interne à /product?slug=slug
Vous devez avoir un serveur personnalisé pour le mappage côté serveur:
server.get("/product/:slug", (req, res) => {
return app.render(req, res, "/product", { slug: req.params.slug })
})
Pour ceux qui arrivent en retard à cette fête, nous avons maintenant routage dynamique dans les 9 suivants.
Ce qui permettrait de créer une structure d'URL comme celle-ci en utilisant la structure de fichiers, et sans packages supplémentaires.
Vous pouvez créer un fichier pages/user/[id].js
Avec
import { useRouter } from 'next/router'
const User = () => {
const router = useRouter()
const { id } = router.query
return <p>User: {id}</p>
}
export default User
Premier routeur d'importation
import Router from 'next/router'
Ensuite, si vous souhaitez l'utiliser dans une balise Link
<Link href={{ pathname: '/about', query: { name: 'Sajad' } }}>
Si vous souhaitez l'utiliser dans une fonction ou après un rappel
Router.Push({
pathname: '/about',
query: { name: 'Sajad' },
})
J'ai rencontré le même problème, mais j'ai trouvé ce package, https://github.com/fridays/next-routes
Cela fonctionne presque de la même manière que react-router, je l'ai essayé et cela fonctionne pour moi.