🍣

基礎から始めるNext.js【5Next Link】

2022/11/01に公開

基礎から始めるNext.js【5Next Link】

YouTube: https://youtu.be/_px2A2DEyg4

https://youtu.be/_px2A2DEyg4

今回はページ遷移用のリンクの設定方法について解説します。

現在使用しているNext.jsはバージョン13なのですが、
それ以前のバージョンですと、
Linkコンポーネントでaタグをラップするか、
Linkコンポーネントに「passHref」のpropsを設定する必要がありました。

バージョン13では上記の設定は不要になっているようです。

pages/index.tsx
import Head from 'next/head'
import Image from 'next/image'
import Link from 'next/link'
import styles from '../styles/Home.module.css'

export default function Home() {
  return (
    <div className={styles.container}>
      <Head>
        <title>Create Next App</title>
        <meta name="description" content="Generated by create next app" />
        <link rel="icon" href="/favicon.ico" />
      </Head>

      <main className={styles.main}>
        <h1 className={styles.title}>
          Welcome to <a href="https://nextjs.org">Next.js!</a>
        </h1>
        <Link href={'/hello'}>to Hellopage</Link>
      </main>

      <footer className={styles.footer}>
        <a
          href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
          target="_blank"
          rel="noopener noreferrer"
        >
          Powered by{' '}
          <span className={styles.logo}>
            <Image src="/vercel.svg" alt="Vercel Logo" width={72} height={16} />
          </span>
        </a>
      </footer>
    </div>
  )
}
pages/hello/index.tsx
import Head from 'next/head'
import Image from 'next/image'
import Link from 'next/link'
import styles from '../../styles/Home.module.css'

export default function Hello() {
  return (
    <div className={styles.container}>
      <Head>
        <title>Hello Next App</title>
        <meta name="description" content="Generated by create next app" />
        <link rel="icon" href="/favicon.ico" />
      </Head>

      <main className={styles.main}>
        <h1 className={styles.title}>
          Welcome to <a href="https://nextjs.org">Hello Page</a>
        </h1>
        <Link href={'/'}>to Toppage</Link>
      </main>

      <footer className={styles.footer}>
        <a
          href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
          target="_blank"
          rel="noopener noreferrer"
        >
          Powered by{' '}
          <span className={styles.logo}>
            <Image src="/vercel.svg" alt="Vercel Logo" width={72} height={16} />
          </span>
        </a>
      </footer>
    </div>
  )
}

Discussion