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を開くと、次の出力が表示されます。

最初の投稿リンクをクリックします。