下一代 React 框架:Next.js 详细介绍

前言

前端开发领域一直在变化,各种新技术,新工具层出不穷。React 一直是前端开发领域的一枝独秀,近年来,随着前端开发工作的不断演进,Next.js 成为一个备受前端开发者青睐的框架。在本文中,我们将深入探讨 Next.js,探究其特点和优势,为前端开发者创造更好的工作环境提供指导意义。

Next.js 简介

Next.js 是一款 React 框架,用于构建轻量级的 Web 应用程序和静态网站。它通过服务器端渲染 (SSR) 和自动代码分割方式的优化,提高了应用程序的性能和开发体验。

Next.js 是基于 React 的,它利用 React 的强大功能,像 JSX、CSS in JS 和组件化开发,为开发者提供了原生、灵活和可扩展的开发方式,并且它提供了诸如自动代码分割、预渲染、服务器端渲染和静态生成等功能,使其在性能和用户体验方面具有优势。另外,Next.js 也提供了许多的插件和工具,可以让开发者更加方便地使用它。

Next.js 特点和优势

服务器端渲染 (SSR)

Next.js 支持服务器端渲染,这意味着我们可以把 React 组件渲染成 HTML,以便搜索引擎对我们的网站进行索引,同时也可以让网页在加载时更快的展现,提高了用户体验。

该框架还允许开发者使用 getServerSideProps() 方法获取所需数据,然后将它们与组件一起传递到前端,大大提高了渲染的性能。例如,以下代码片段演示了 next.js 中如何使用 getServerSideProps() 方法

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

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

预渲染 (Prerendering)

Pre-rendering (预渲染) 是 Next.js 的一大特点。它将在构建时自动生成 HTML 静态页面,以提高首次加载性能和 SEO。就像服务器端渲染 (SSR) 一样,它可以使页面更快地呈现在用户面前,提高了用户体验。

代码示例:

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

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

自动代码分割

通过 Next.js,我们可以轻松地实现自动代码分割,以使整个应用程序变得更加灵活和高效。这样,网页的加载时间会更快,用户体验会更流畅。

代码示例:

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

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

静态生成 (Static Generation)

Next.js 支持静态生成 (Static Generation) 功能,在构建时生成 HTML 静态页面,以提高首次加载性能和 SEO。与服务器端渲染 (SSR) 不同的是,静态生成是在构建时生成 HTML 静态页面,不需要每次读取数据库或外部 API 来提供内容和数据。

代码示例:

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

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

安装 Next.js

在开始使用 Next.js 之前,我们需要安装它。安装方式有两种,使用命令行或者使用 UI 工具。

使用命令行安装

我们需要先安装 Node.js 和 npm,然后使用下面的命令来安装 Next.js:

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

使用 UI 工具安装

除了使用命令行安装,我们也可以使用人性化的 UI 工具来安装 Next.js。其中最常用的是 Yarn,也可以使用 VS Code 的 UI 工具来安装。由于 UI 工具节省了大量的时间和繁琐的命令行操作,所以越来越受到前端开发者的欢迎。

Next.js 实现并发请求 GetServerSideProps()

在下列场景中,我们需要做到高效的并发请求 GetServerSideProps():

  • 通过多个接口返回更新后的数据。
  • 通过多个接口获取一些必要的数据。

首先,我们需要安装 Concurrently 包,它允许我们在一个命令行窗口中并发执行多个命令。

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

然后在 package.json 脚本中添加以下代码:

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

在服务器端代码中,使用 axios 库实现 GetServerSideProps() 从多个接口获取数据,代码实现如下:

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

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

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

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

Next.js 中的布局

布局是指将网站 UI 中的相似部分提取为一组组件。在 Next.js 中,我们可以轻松地实现布局,以便为网站的所有页面提供一致的外观和体验。

我们首先创建一个名为 Layout.js 的文件,代码实现如下:

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

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

      ----------

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

在下面的组件中,我们引用上面创建的 Layout 组件。

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

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

通过这种方式,我们可以灵活地组织我们的代码,使其更加模块化。我们只需添加或修改一个组件,就可以将其应用于整个网站。

Next.js 集成 Redux

在 Next.js 中使用 Redux 可以让我们更方便地管理应用程序的状态。

为了在 Next.js 中使用 Redux,我们需要按照以下步骤进行操作:

1.安装必要的依赖:

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

2.创建 store 和 reducer:

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

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

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

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

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

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

3.利用 next-redux-wrapper 创建 store,并将其传递到应用程序中:

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

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

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

4.在 _app.js 文件中使用 Provider:

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

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

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

5.在我们的组件中操作 Redux:

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

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

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

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

通过上面几个步骤,我们就能在 Next.js 中愉快地使用 Redux 了。

结论

本文介绍了 Next.js 框架的特点和优势,并引导读者实现一些实用的功能,例如并发请求 GetServerSideProps,布局和 Redux 集成。这些操作可以让我们更好地理解 Next.js,更愉快地使用它,希望对读者有用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67068524d91dce0dc85e1dfc