🙄
基礎から始めるNext.js【7Layout Component】
基礎から始めるNext.js【7Layout Component】
YouTube: https://youtu.be/Y8NtBnf4TDM
今回はレイアウトコンポーネントを作成します。
フォルダの一番上の階層に「components」フォルダを作成して、
その中に「Layout.tsx」を作成します。
こちらのファイル名は「pages」直下のファイル名と異なり、
頭文字は大文字に設定します。
components/Layout.tsx
import Head from 'next/head'
import Image from 'next/image'
import styles from '../styles/Home.module.css'
const Layout = ({ children, title, content }) => {
return (
<div className={styles.container}>
<Head>
<title>{title}</title>
<meta name="description" content={content} />
<link rel="icon" href="/favicon.ico" />
</Head>
<main className={styles.main}>{children}</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>
)
}
export default Layout
pages/index.tsx
import Link from 'next/link'
import Layout from '../components/Layout'
import styles from '../styles/Home.module.css'
export default function Home() {
return (
<Layout title="Next App TopPage" content="Generated by create next app">
<h1 className={styles.title}>
Welcome to <a href="https://nextjs.org">Next.js!</a>
</h1>
<Link href={'/hello/1'}>to Hellopage</Link>
</Layout>
)
}
Discussion