![見出し画像](https://assets.st-note.com/production/uploads/images/147495949/rectangle_large_type_2_46243aab38115fe961884d4a4b319056.png?width=1200)
Next.js 入門(ざっくり)
Next.jsは、Reactベースのフレームワークで、サーバーサイドレンダリング(SSR)や静的サイト生成(SSG)などの機能を提供します。SEO対策やパフォーマンス向上が求められるアプリケーションに非常に有用です。
1. 環境設定
まず、Node.jsとnpm(またはyarn)がインストールされていることを確認してください。
2. Next.jsプロジェクトの作成
プロジェクトディレクトリを作成し、Next.jsをセットアップします。
npx create-next-app my-next-app
cd my-next-app
npm run dev
これにより、`http://localhost:3000`で開発サーバーが起動します。
3. ディレクトリ構成
Next.jsの主なディレクトリ構成は以下の通りです:
`pages/`: ページコンポーネントを配置するディレクトリ。ファイル名がURLパスになります。
`public/`: 静的ファイル(画像、フォントなど)を配置します。
`styles/`: グローバルなCSSファイルやモジュールCSSファイルを配置します。
4. 基本的なページの作成
`pages/index.js`を編集して、簡単なページを作成してみましょう。
import Head from 'next/head';
export default function Home() {
return (
<div>
<Head>
<title>My Next.js App</title>
</Head>
<main>
<h1>Welcome to My Next.js App</h1>
</main>
</div>
);
}
5. リンクの使用
内部リンクには`next/link`を使用します。
import Link from 'next/link';
export default function Home() {
return (
<div>
<h1>Welcome to My Next.js App</h1>
<Link href="/about">
<a>About Page</a>
</Link>
</div>
);
}
新しいページ`pages/about.js`を作成して、リンク先の内容を表示します。
export default function About() {
return (
<div>
<h1>About Page</h1>
<p>This is the about page of the application.</p>
</div>
);
}
6. スタイルの適用
Next.jsでは、グローバルCSSやCSSモジュールを使用できます。
グローバルCSS
`styles/globals.css`を作成し、以下の内容を追加します:
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
このファイルを`pages/_app.js`でインポートします:
import '../styles/globals.css';
function MyApp({ Component, pageProps }) {
return <Component {...pageProps} />;
}
export default MyApp;
CSSモジュール
CSSモジュールを使用するために、`Home.module.css`というファイルを作成し、以下の内容を追加します:
.container {
text-align: center;
}
.title {
color: blue;
}
これを`index.js`でインポートして使用します:
import styles from '../styles/Home.module.css';
export default function Home() {
return (
<div className={styles.container}>
<h1 className={styles.title}>Welcome to My Next.js App</h1>
</div>
);
}
7. データフェッチング
Next.jsは、データフェッチングのためのいくつかのメソッドを提供しています:
`getStaticProps`: ビルド時にデータを取得し、静的ページを生成します。
`getServerSideProps`: リクエストごとにデータを取得し、サーバーサイドでレンダリングします。
getStaticPropsの例
export async function getStaticProps() {
const res = await fetch('https://api.example.com/data');
const data = await res.json();
return {
props: {
data,
},
};
}
export default function Home({ data }) {
return (
<div>
<h1>Data from API</h1>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
);
}
以上、アウトプットがてらざっくり書いてみました。
公式ドキュメント: Next.js Documentation
この記事が気に入ったらサポートをしてみませんか?