私は NextJS の初心者です。第一印象はとてもよく見えます。しかし、それにチャンスを与えた後、 react-router のようなカスタムパラメータを使用したURLルーティングなどの問題に直面しました。
https://url.com/users?id:123
https://url.com/users/123
React-routerには、ここに完璧な例があります https://reacttraining.com/react-router/web/example/url-params
この例は、パラメーター化された名前付きルートを定義するのに役立ちます。ネスト/ルートを使用し、好みのカスタムルートを定義できます。それがお役に立てば幸いです。
https://github.com/zeit/next.js/tree/master/examples/with-next-routes
next/link
のas
機能を使用できます。
<Link prefetch as={`/product/${slug}`} href={`/product?slug=${slug}`}>
ブラウザのリンクは/product/slug
として表示され、内部的に/product?slug=slug
にマッピングされます
サーバー側のマッピングには カスタムサーバー が必要です。
server.get("/product/:slug", (req, res) => {
return app.render(req, res, "/product", { slug: req.params.slug })
})
このパーティーに遅れて到着する人のために、Next 9に 動的ルーティング があります。
これにより、ファイル構造を使用して、追加のパッケージなしで、URL構造をこのように作成することができます。
ファイルを作成できますpages/user/[id].js
と
import { useRouter } from 'next/router'
const User = () => {
const router = useRouter()
const { id } = router.query
return <p>User: {id}</p>
}
export default User
最初のインポートルーター
import Router from 'next/router'
次に、リンクタグで使用する場合
<Link href={{ pathname: '/about', query: { name: 'Sajad' } }}>
関数内またはコールバック後に使用する場合
Router.Push({
pathname: '/about',
query: { name: 'Sajad' },
})
同じ問題を経験しましたが、このパッケージを見つけました https://github.com/fridays/next-routes
これは、react-routerとほぼ同じように機能します。私は試してみましたが、うまくいきました。