Next.js-ルーティング
Next.jsは、ファイルシステムベースのルーターを使用します。ページを追加するときはいつでもpagesディレクトリ、それはURLを介して自動的に利用可能です。このルーターのルールは次のとおりです。
Index Routes−フォルダに存在するindex.jsファイルは、ディレクトリのルートにマップされます。例-
pages /index.jsは「/」にマップされます。
pages / posts /index.jsは「/ posts」にマップされます。
Nested Routes−ルーターのURLが自動的に設定されるため、pagesディレクトリ内のネストされたフォルダ構造。例-
pages / settings / dashboard /about.jsは「/ settings / dashboard / about」にマップされます。
pages / posts /first.jsは「/ posts / first」にマップされます。
Dynamic Routes−名前付きパラメーターを使用してURLを照合することもできます。同じために括弧を使用してください。例-
pages / posts / [id] .jsは「/ posts /:id」にマップされ、「/ posts / 1」のようなURLを使用できます。
pages / [user] /settings.jsは「/ posts /:user / settings」にマップされ、「/ abc / settings」のようなURLを使用できます。
pages / posts / [... all] .jsは「/ posts / *」にマップされ、「/ posts / 2020 / jun /」のような任意のURLを使用できます。
ページリンク
Next.JSでは、Linkreactコンポーネントを使用してクライアント側のページをリンクできます。以下の特性があります-
href−ページディレクトリ内のページの名前。例えば/posts/first これは、pages / postsディレクトリにあるfirst.jsを指します。
同じことを示す例を作成しましょう。
この例では、index.jsページとfirst.jsページを更新して、サーバーにヒットしてデータを取得します。
グローバルCSSサポートの章で使用されているnextjsプロジェクトを更新しましょう。
次のようにpagesディレクトリのindex.jsファイルを更新します。
import Link from 'next/link'
import Head from 'next/head'
function HomePage(props) {
return (
<>
<Head>
<title>Welcome to Next.js!</title>
</Head>
<div>Welcome to Next.js!</div>
<Link href="/posts/first">> <a>First Post</a></Link>
<br/>
<div>Next stars: {props.stars}</div>
<img src="/logo.png" alt="TutorialsPoint Logo" />
</>
)
}
export async function getServerSideProps(context) {
const res = await fetch('https://api.github.com/repos/vercel/next.js')
const json = await res.json()
return {
props: { stars: json.stargazers_count }
}
}
export default HomePage
Next.jsサーバーを起動します
次のコマンドを実行してサーバーを起動します-。
npm run dev
> [email protected] dev \Node\nextjs
> next
ready - started server on http://localhost:3000
event - compiled successfully
event - build page: /
wait - compiling...
event - compiled successfully
event - build page: /next/dist/pages/_error
wait - compiling...
event - compiled successfully
出力を確認する
ブラウザでlocalhost:3000を開くと、次の出力が表示されます。
最初の投稿リンクをクリックします。