🍣
基礎から始めるNext.js【5Next Link】
基礎から始めるNext.js【5Next Link】
YouTube: 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