Next.js 前端框架入门及使用指南

阅读时长 7 分钟读完

概述

Next.js 是一款得到了广泛认可的 React 框架,它可以帮助开发者快速搭建具有可定制化的 React 应用程序。Next.js 更多的是基于 Node.js 平台而开发,提供了一些重要的功能,例如服务器端渲染、使用 API 路由句柄、静态文件服务、自动编译和打包、以及构建和部署流程的优化。

本篇文章将介绍如何使用 Next.js 框架来构建 React 应用,并讲解一些实战上应用场景的使用方法和优化技巧。

安装环境

安装 Node.js 环境,通过 npm 安装下列包:

这里我们安装了 React、React-DOM 和 Next.js 三个最基本的库及框架。

创建项目

下面,我们可以通过在命令行工具中运行下列命令来创建一个新的 Next.js 项目:

执行后在浏览器中访问 http://localhost:3000 即可查看,这里包含主页、API 页面、404 页面等。

Next.js 的 SSR 功能

Next.js 提供了一个十分强大的服务器端渲染(SSR)部分,这块内容很多时候是 React 应用的重点和优势,这里简单介绍一下。

Next.js 的 SSR 使用起来非常便捷和灵活。我们首先可以通过 getServerSideProps() 方法将从数据库中拉取的数据映射到当前页面,这里举一个例子:

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

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

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

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

在上面的例子中,我们通过 getServerSideProps() 方法来获取数据库中帖子的数据,并将其映射到当前页面。这里值得注意的是,获取数据的部分是在服务器端完成的。

我们还可以使用 getStaticProps() 方法,将外部数据预取到构建时期,并将其缓存起来:

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

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

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

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

在上述例子中,我们同样获取数据并映射到页面上,不过,这次我们使用 getStaticProps() 方法,构建了一个静态版本的页面,它将提供快速的初始加载速度,同时也有良好的 SEO 此外,当我们定期更新数据时,我们还使用了 revalidate() 方法,在一定的时间间隔后更新静态页面。

路由设置和 API 路由

在 Next.js 框架中,可以通过配置路由来实现页面之间的跳转。针对于这一部分内容,我们可以先在 pages 目录下新建一个文件,像下面这样:

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

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

其中 Link 组件提供了一种轻松的方式来设置页面间的跳转。

接着,我们再来看一下如何使用 API 路由,在 Next.js 应用中,API 路由是服务端渲染 (SSR) 应用的又一重要部分,它可以帮助开发者根据请求和路径信息,响应内容到客户端。

我们可以在 pages/api 目录下新建一个文件,创建一个简单的 API 路由:

在其中,我们只是简单地设置了一个 json 数据,然后响应给客户端。

SSR 的优化

SSR 带来了很多上述提到过的优势,同时要想更好的实现优化,需要注意一些内部的实现细节,这里我们讲解一下如何实现服务器端的缓存,以及如何去除样式重复问题。

使用缓存,可以将从服务器端获取到的数据直接缓存到客户端,从而实现较为快速的初始化渲染。可以考虑使用 cache-control 来配置缓存信息,示例如下:

在上述例子中,我们调用了 setHeader() 方法来设置 cache-control 的值,从而实现缓存。

接下来,我们再看一下如何避免样式重复问题。在 Next.js 应用中,样式文件会被自动加载到 head 部分的 style 标签中,这样会导致样式重复。为了避免这一问题,我们可以通过使用 styled components 来解决这一问题:

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

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

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

在上述例子中,我们通过使用 styled components 来定义一个名称为 Wrapper 的组件,并将样式统一化处理到该组件中,从而避免了样式重复问题的出现。

总结

本篇文章详细介绍了如何使用 Next.js 框架来构建 React 应用,并讲解了一些实战上应用场景的使用方法和优化技巧。在日常开发中,掌握这些优化技巧将有助于提升代码的执行效率,并为我们的应用提供更好的用户体验。

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

纠错
反馈