Next.js は、開発者がサーバーでレンダリングされる高速なアプリケーションを作成できるようにする人気の React フレームワークです。静的サイト生成 (SSG)、サーバー側レンダリング (SSR)、API ルートなど、すぐに使用できる強力な機能を提供します。このガイドでは、主要な概念と実践的な例に焦点を当てて、最初の Next.js アプリケーションを構築するプロセスを順を追って説明します。
Next.js を使い始めるには、マシンに Node.js がインストールされている必要があります。 Node.js をセットアップしたら、次のコマンドを使用して新しい Next.js アプリケーションを作成できます:
npx create-next-app my-next-app
このコマンドは、Next.js アプリケーションを開始するために必要なすべてのファイルと依存関係を含む、my-next-app という新しいディレクトリを作成します。
プロジェクトを作成した後、プロジェクト ディレクトリに移動します:
cd my-next-app
my-next-app ディレクトリ内に、次のような構造があります:
my-next-app/ ├── node_modules/ ├── pages/ │ ├── api/ │ ├── _app.js │ ├── index.js ├── public/ ├── styles/ │ ├── Home.module.css ├── package.json └── README.md
pages ディレクトリはアプリケーションのページを作成する場所であり、public は静的アセット用です。
Next.js はファイルベースのルーティング システムを使用します。新しいページを作成するには、新しい JavaScript ファイルをページ ディレクトリ内に追加するだけです。たとえば、about.js:
という名前のファイルを作成します。
// pages/about.js import Link from 'next/link'; export default function About() { return (); }About Page
This is the about page of my first Next.js application!
Go back home
この例では、単純な About ページを作成し、Link コンポーネントを使用してホームページに戻ります。
pages ディレクトリ内の Index.js ファイルを開きます。このファイルはアプリケーションのホームページを表します。次のように変更できます:
// pages/index.js import Link from 'next/link'; import styles from '../styles/Home.module.css'; export default function Home() { return (); }Welcome to My Next.js App
This is my first application built with Next.js.{' '} Learn more about me
ここでは、簡単なスタイルと About ページへのリンクを追加しました。
Next.js は、すぐに CSS モジュールをサポートします。コンポーネントのスタイルを設定するには、styles ディレクトリに CSS モジュールを作成します。たとえば、Home.module.css:
という名前のファイルを作成します。
/* styles/Home.module.css */ .container { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; font-family: Arial, sans-serif; }
次に、前のセクションで示したように、この CSS モジュールをindex.js ページにインポートします。
Next.js を使用すると、静的サイト生成の場合は getStaticProps を使用し、サーバー側レンダリングの場合は getServerSideProps を使用してデータを簡単に取得できます。たとえば、ホームページ上のデータを取得するには、index.js を次のように変更します。
// pages/index.js export async function getStaticProps() { const res = await fetch('https://jsonplaceholder.typicode.com/posts'); const posts = await res.json(); return { props: { posts }, }; } export default function Home({ posts }) { return (); }Welcome to My Next.js App
{posts.map(post => (
- {post.title}
))}
このコードでは、パブリック API から投稿のリストを取得し、ホームページに表示します。
Next.js を使用すると、pages/api ディレクトリに API ルートを作成できます。これらのルートを使用して、バックエンド機能を構築できます。たとえば、pages/api ディレクトリに hello.js という名前のファイルを作成します:
// pages/api/hello.js export default function handler(req, res) { res.status(200).json({ message: 'Hello from Next.js API!' }); }
この API ルートにアクセスするには、http://localhost:3000/api/hello に移動します。
アプリケーションの準備ができたら、簡単にデプロイできます。 Vercel は、Next.js アプリケーションに推奨されるホスティング プラットフォームです。次の手順に従ってアプリをデプロイできます:
Vercel アカウントをお持ちでない場合は、作成してください。
Vercel CLI をグローバルにインストールします:
npm install -g vercel
プロジェクト ディレクトリで次のコマンドを実行します:
vercel
プロンプトに従ってアプリケーションをデプロイします。
Next.js は、括弧を使用した動的ルーティングをサポートしています。たとえば、動的なブログ投稿ページを作成する場合は、pages/posts ディレクトリに [id].js という名前のファイルを作成できます:
// pages/posts/[id].js import { useRouter } from 'next/router'; export default function Post() { const router = useRouter(); const { id } = router.query; returnPost: {id}
; }
/posts/1、/posts/2 などに移動して、特定の投稿にアクセスできるようになりました。
アプリケーションにグローバル スタイルを適用したい場合は、pages ディレクトリに _app.js という名前のファイルを作成することで適用できます。
// pages/_app.js import '../styles/globals.css'; export default function App({ Component, pageProps }) { return; }
次に、styles ディレクトリに globals.css ファイルを作成し、グローバル スタイルを追加します。
/* styles/globals.css */ body { margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #f0f0f0; }
Next.js は、機密情報を保存するための環境変数をサポートしています。プロジェクトのルートに .env.local ファイルを作成し、変数を追加できます:
API_URL=https://example.com/api
その後、process.env:
を使用してアプリケーションでこの変数にアクセスできます。
// Example usage in a component const apiUrl = process.env.API_URL;
最初の Next.js アプリケーションの構築おめでとうございます!この旅を通じて、プロジェクトのセットアップ、動的なページの作成、データのシームレスなフェッチ、堅牢なルーティングの実装、アプリケーションの簡単なデプロイ方法を学びました。
Next.js は単なるフレームワークではありません。これは、Web 開発エクスペリエンスを大幅に向上させる強力なツールです。静的サイト生成 (SSG) やサーバー側レンダリング (SSR) などの組み込み機能を使用すると、パフォーマンスと SEO に最適化された、高速でユーザー フレンドリーなアプリケーションを作成できます。
最初の Next.js アプリケーションの構築に成功したので、スキルを次のレベルに引き上げましょう。この今後の投稿シリーズでは、アプリケーションを強化し、開発プロセスを合理化できる Next.js のより高度な機能のいくつかをさらに詳しく掘り下げていきます。
ミドルウェア は、リクエストが完了する前にカスタム ロジックを追加することでアプリケーションの機能を拡張できる強力な機能です。これは、リクエストとレスポンスのオブジェクトを操作したり、ユーザーを認証したり、リダイレクトをシームレスに管理したりできることを意味します。
次に、静的サイト生成 (SSG) について説明します。この手法により、ビルド時にページが事前レンダリングされるため、読み込み速度が速くなり、SEO パフォーマンスが向上します。 SSG の活用方法を理解することで、動的であるだけでなく、驚くほど効率的なアプリケーションを作成できます。
最後に、Next.js アプリケーション内で直接サーバーレス関数を構築できる機能である API ルート について説明します。これは、別のサーバーを必要とせずにリクエストとレスポンスを処理できることを意味し、より少ないオーバーヘッドでフルスタック アプリケーションの開発が容易になります。
Next.js の高度な機能へのこのエキサイティングな旅に乗り出す私に従ってください。これらのツールを自由に使えば、本当に優れた堅牢で高性能なアプリケーションを構築できます。次回の投稿もお楽しみに!
この投稿は次のサイトでも読むことができます:
次の場所で私を見つけてください:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3