Next.js 基础教程

Next.js 是一个基于 React 的前端开发框架,它提供了服务器端渲染(SSR)和静态生成(SSG)的功能,使得开发者能够构建快速、可扩展的 Web 应用。

环境准备

在开始之前,请确保你已经安装了 Node.js 和 npm/yarn。你可以通过以下命令安装 Next.js:

npx create-next-app@latest my-next-app
cd my-next-app
npm install

或者使用 yarn:

yarn create next-app my-next-app
cd my-next-app
yarn install

目录结构

Next.js 应用的基本目录结构如下:

my-next-app/
  ├── node_modules/
  ├── public/
  ├── src/
  │   ├── pages/
  │   │   └── index.js
  │   └── components/
  ├── next.config.js
  ├── package.json
  └── README.md

页面和路由

在 Next.js 中,页面是通过在 pages 目录下创建 .js.jsx.ts.tsx 文件自动生成的。例如,创建一个 about.js 文件在 pages 目录下,将会创建一个 /about 的路由。

// pages/about.js
import Link from 'next/link';

export default function About() {
  return (
    <div>
      <h1>About Us</h1>
      <Link href="/"><a>Home</a></Link>
    </div>
  );
}

静态生成与服务器端渲染

  • 静态生成(Static Generation):在构建时生成页面,适用于不频繁更新的内容。
  • 服务器端渲染(Server-Side Rendering):在每次请求时生成页面,适用于需要实时数据的内容。

你可以在页面组件中使用 getStaticPropsgetServerSideProps 函数来控制数据的获取方式。

// 使用静态生成
export async function getStaticProps() {
  const data = await fetch('https://api.example.com/data').json();
  return {
    props: { data },
    revalidate: 3600, // 重新验证时间(秒)
  };
}

// 使用服务器端渲染
export async function getServerSideProps(context) {
  const data = await fetch('https://api.example.com/data').json();
  return {
    props: { data },
  };
}

API 路由

Next.js 允许你在 pages/api 目录下创建 API 路由。这些路由将被自动处理为 API 端点。

// pages/api/data.js
export default function handler(req, res) {
  res.status(200).json({ message: 'Hello from API' });
}

部署

Next.js 应用可以部署在许多不同的平台上,包括 Vercel、Netlify、AWS 等。Vercel 是 Next.js 的官方推荐部署平台,因为它提供了一键部署和自动 SSL 等功能。

结语

本教程只是一个简单的入门,Next.js 还有很多高级特性等待你去探索,比如 CSS/Sass 支持、环境变量、国际化等。希望这个基础教程能帮助你开始使用 Next.js 构建你的 Web 应用。

请根据你的具体需求调整和扩展这篇教程的内容。希望这能帮助你开始你的 Next.js 学习之旅!