如何使用 Next.js 构建服务器

阅读时长 7 分钟读完

在前端开发领域,服务器渲染已经成为越来越流行的技术方向。在这种情况下,Next.js 是一个非常优秀的框架,可以为您构建服务器。接下来,我们将介绍 Next.js 构建服务器的详细过程。本文的指导意义非常重要,同时提供了实用的示例代码。

Next.js 简介

在开始介绍 Next.js 构建服务器之前,首先需要了解一下什么是 Next.js。

Next.js 是一个由 React 驱动的 SSR 框架。它的主要目的是为 React 应用提供服务器渲染、静态化和实时客户端预渲染。因此,使用 Next.js 构建应用程序可以获得更好的性能和可操作性。

构建一个基本的 Next.js 服务器

接下来,我们将一步一步地介绍如何使用 Next.js 构建服务器。为了更好地了解这个过程,我们将构建一个基本的 Next.js 服务器。

  1. 在您的项目中安装 Next.js。
  1. 创建 pages 文件夹,并在其中创建 index.js 文件。这将是我们的主页路由。
-- -------------------- ---- -------
-- --------------
------ ----- ---- --------

----- ---- - -- -- -
  ------ -
    -----
      ----------- -- -- ------- ------------
    ------
  --
--

------ ------- -----
  1. 创建 package.json 文件,并在其中添加一个 scripts 字段,使我们可以方便地启动 Next.js 服务器。
-- -------------------- ---- -------
-
  ------- --------------------
  ---------- --------
  ---------- -
    ------ ------
  --
  --------------- -
    ------- ----------
    -------- ----------
    ------------ ---------
  -
-
  1. 执行 npm run dev 命令启动 Next.js 服务器。

  2. 然后,您可以在浏览器中访问 http://localhost:3000 端口来查看您的页面加载效果。

Next.js 构建服务器的深度内容

在上述示例代码中,我们了解了 Next.js 构建服务器的基本概念,但是这并不是服务器渲染的全部。接下来,让我们深入了解 Next.js 构建服务器的深度内容。

设置路由

Next.js 默认会根据您在 pages 文件夹中创建的文件来设置路由。例如,在示例中,我们创建了一个 pages/index.js 文件来设置我们的主页路由。

除此之外,您还可以使用 next/router 组件来自定义路由。例如:

-- -------------------- ---- -------
------ - --------- - ---- --------------
------ ----- ---- --------

----- ----------- - -- -- -
  ----- ------ - ------------
  ----- - ---- - - -------------

  ------ -
    -----
      --------- ---- --- ----------
    ------
  --
--

------ ------- ------------

在这个示例中,路由接收名为 user 的参数,它是在 URL 中动态传递的。当我们访问 http://localhost:3000/profile?user=john 时,UserProfile 组件将渲染并显示 User's name is: john

获取数据

由于 Next.js 使用的是服务器渲染,因此可以在服务器上获取数据,然后将其传递给客户端渲染。您可以使用 Next.js 中的 getStaticPropsgetStaticPathsgetServerSidePropsgetInitialProps 函数来处理数据。

  • getStaticProps:提前获取数据,并生成一个静态页面。无法接收动态参数,因此可以适用于静态网站或动态内容不经常更改的网站。

  • getStaticPaths:用于提供所有可能路由的数组,并将每个项目或参数传递给 getStaticPropsgetStaticPaths

  • getServerSideProps:提供动态页面上的数据获取功能。每次访问页面时,该函数都会在服务器上进行调用。

  • getInitialProps:为旧版本 Next.js 提供的 API,已慢慢被弃用。getInitialProps 可在客户端和服务器上使用。

-- -------------------- ---- -------
-- --------------
------ ----- -------- --------------------------- -
  -- ----
  ----- --- - ----- -----------------------------------------------------
  ----- ---- - ----- -----------

  ------ -
    -- ------
    ------ -
      ------ ----------------------
    --
  --
-

----- -------- - -- ----- -- -- -
  ------ -
    -----
      ---------- ---- --- ------- ------
    ------
  --
--

------ ------- ---------

在这个示例中,我们定义了 getServerSideProps 函数来获取来自 Github API 的数据。props 对象将传递给 HomePage 组件作为 props

自定义服务器

Next.js 提供默认服务器,但是您可以使用自定义服务器来进行更多的配置和操作。自定义服务器可用于处理 WebSockets、身份验证等等。您可以使用 server.js 文件来创建自定义服务器。

-- -------------------- ---- -------
-- ---------
----- ------- - -------------------
----- ---- - ----------------

----- --- - -------------------- --- -------------
----- --- - ------ --- ---
----- ------ - ------------------------

--------------------- -- -
  ----- ------ - ----------

  -------------------- ----- ---- -- -
    --------------- ---- ----------
  ---

  --------------- ----- ---- -- -
    ------ ----------- -----
  ---

  ------------------- ----- -- -
    -- ----- ----- ----
    -------------- ----- -- ------------------------
  ---
---

在这个示例中,我们创建了一个自定义服务器,可用于处理 /admin 路由。* 对应于所有其他路由,以使用默认的 Next.js 处理方法。

部署 Next.js 服务器

在完成 Next.js 服务器的构建后,您需要将其部署到云服务器、CDN 或其他服务器上。由于每家公司的标准都不同,因此部署 Next.js 服务器需要选用不同的方案。例如:

  • 将 Next.js 部署到 Vercel(前身是 ZEIT)上。它是 Next.js 的官方合作伙伴,并提供了一个无管理的部署平台。该平台非常适合小型的 Next.js 应用程序。您只需要将您的代码上传到该平台即可,无需任何其他配置。

  • 将 Next.js 部署到 AWS Lambda 上。AWS Lambda 是 AWS 提供的一个无服务器计算服务,适用于处理无状态的请求。

总结

在这个教程中,我们探讨了 Next.js 构建服务器的内容,并提供了深入的解释。您不仅学会了如何构建基本的 Next.js 服务器,并且可以存取深度内容,包括路由、数据获取、自定义服务器和部署 Next.js 服务器。对于那些想要构建服务器渲染应用程序的开发人员来说,这些知识将非常有用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64aa08ee48841e9894638997

纠错
反馈