Chapter 1:入门

入门

创建新项目

要创建一个 Next.js 应用程序,请打开终端,进入您想要存储项目的文件夹,并运行以下命令:

npx create-next-app@latest nextjs-dashboard --use-npm --example "https://github.com/vercel/next-learn/tree/main/dashboard/starter-example"

该命令使用 create-next-app (opens in a new tab),这是一个命令行接口(CLI)工具,可以为您设置一个 Next.js 应用程序。在上述命令中,您还使用 --example 标志与此课程的入门 示例 (opens in a new tab) 一起使用。

浏览项目

与让您从头编写代码的教程不同,这门课程的大部分代码已经为您编写了。这更好地反映了现实世界的开发,您可能会与现有的代码库一起工作。

我们的目标是帮助您专注于学习 Next.js 的主要特性,而无需编写所有应用程序代码。

安装后,在代码编辑器中打开项目并导航到 nextjs-dashboard

让我们花些时间来探索项目。

文件夹结构

您会注意到项目具有以下文件夹结构:

  • /app:包含应用程序的所有路由、组件和逻辑,这是您将主要从中工作的地方。
  • /app/lib:包含在应用程序中使用的函数,例如可重用的实用函数和数据获取函数。
  • /app/ui:包含应用程序的所有 UI 组件,例如卡片、表格和表单。为节省时间,我们已经为您预先样式化了这些组件。
  • /public:包含应用程序的所有静态资产,例如图片。
  • /script/:包含一个 seeding(这里翻译为 “播种” 可以理解为数据库的 Migration)脚本,您将在后面的章节中使用它来填充您的数据库。
  • 配置文件:您还会注意到应用程序根目录下有一些配置文件,例如 next.config.js。大多数这些文件在使用 `create-next-app`` 启动新项目时会被创建和预配置。在本课程中,您不需要修改它们。

随意探索这些文件夹,如果您还不理解代码正在执行的一切,不用担心。

Placeholder data(占位数据)

在构建用户界面时,使用一些占位数据很有帮助。如果尚未提供数据库或 API,您可以:

对于此项目,我们在 app/lib/placeholder-data.js 中提供了一些占位数据。文件中的每个 JavaScript 对象代表数据库中的一张表。例如,对于发票表:

/app/lib/placeholder-data.js
const invoices = [
  {
    customer_id: customers[0].id,
    amount: 15795,
    status: 'pending',
    date: '2022-12-06',
  },
  {
    customer_id: customers[1].id,
    amount: 20348,
    status: 'pending',
    date: '2022-11-14',
  },
  // ...
];

在设置数据库的章节中,您将使用这些数据来填充数据库(用一些初始数据填充它)。

TypeScript

您可能还注意到大多数文件都带有 .ts.tsx 后缀。这是因为该项目是使用 TypeScript 编写的。我们希望创建一个反映现代 web 环境的课程。

如果您不熟悉 TypeScript,没关系 - 在需要时,我们将提供 TypeScript 代码片段。

现在,请查看 /app/lib/definitions.ts 文件。在这里,我们手动定义了将从数据库返回的类型。例如,发票表具有以下类型:

/app/lib/definitions.ts
export type Invoice = {
  id: string;
  customer_id: string;
  amount: number;
  date: string;
  // In TypeScript, this is called a string union type.
  // It means that the "status" property can only be one of the two strings: 'pending' or 'paid'.
  status: 'pending' | 'paid';
};

通过使用 TypeScript,您可以确保不会意外地将错误的数据格式传递给组件或数据库,比如将 number 类型传递给发票 amount 属性而不是 string 类型。

如果您是 TypeScript 开发者:

  • 我们手动声明数据类型,但为了更好的类型安全性,我们建议使用 Prisma (opens in a new tab),它会根据数据库架构自动生成类型。
  • Next.js 会检测到您的项目使用 TypeScript,并自动安装必要的软件包和配置。Next.js 还为您的代码编辑器提供了一个 TypeScript 插件 (opens in a new tab),以帮助自动完成和提供类型安全性。

运行开发服务器

运行 npm i 来安装项目的软件包。

npm i

然后运行 npm run dev 来启动开发服务器。

npm run dev

npm run dev 会在端口 3000 上启动您的 Next.js 开发服务器。让我们检查一下它是否工作。在浏览器中打开 http://localhost:3000 (opens in a new tab)。您的首页应该如下所示:

声明

之前,有网友表示,这个项目挺好的,对他有帮助,来表示感谢!

在此声明下,本项目只是一个中文翻译版本,纯粹的 “为爱发电了”,原版权仍归 Next.js 官方教程所有,本翻译项目无任何商业行为,也不接受任何金钱上的捐赠哈。 如果真的感觉有帮助,就点个 Star 吧,关注下 “编程界” 公众号,上面平常也在分享 Next.js 相关内容。

扫码备注 “nextjs” 加入 Next.js 中文技术交流群

扫码备注「nextjs
加入 Next.js 中文技术交流群

关注公众号编程界获取最新 Next.js 开发资讯

关注公众号「编程界
获取最新 Next.js 开发资讯