Next.js 使用及实践

阅读时长 7 分钟读完

什么是 Next.js?

Next.js 是一个 React 框架,它可以帮助我们快速搭建 React 应用。与传统的 React 应用不同,Next.js 还提供了服务器端渲染、静态导出、自动代码分割等功能。

为什么要使用 Next.js?

服务器端渲染

传统的 React 应用是将页面渲染在浏览器中,这样会导致两个问题:首屏渲染慢、不利于 SEO。而 Next.js 提供了服务器端渲染的功能,将页面渲染在服务器端,可以加快首屏渲染速度,并且更利于 SEO。

静态导出

有些页面不需要动态数据,仅仅只需要静态生成即可。Next.js 提供了静态导出的功能,可以将页面生成为静态 HTML 文件,这样可以加快页面加载速度,并且可以方便地部署到 CDN 上。

自动代码分割

Next.js 可以自动将代码分割成更小的块,这样可以加快页面加载速度,提高用户体验。

如何使用 Next.js?

安装 Next.js

使用 npm 安装 Next.js:

创建页面

在 pages 目录下创建一个页面,例如 index.js:

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

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

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

运行应用

在 package.json 中添加以下脚本:

然后运行:

即可启动应用。

部署应用

Next.js 可以将应用部署到多种平台,例如:

  • Vercel
  • Heroku
  • AWS
  • Azure
  • Google Cloud

以 Vercel 为例,只需要将代码上传到 GitHub 或 GitLab,然后在 Vercel 上创建一个项目,即可自动部署。

实践:使用 Next.js 构建博客

创建项目

使用 create-next-app 命令创建一个 Next.js 项目:

创建页面

在 pages 目录下创建一个名为 index.js 的页面,用于显示博客文章列表:

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

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

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

在 pages 目录下创建一个名为 posts 目录,用于存放博客文章页面。在 posts 目录下创建一个名为 [slug].js 的页面,用于显示博客文章内容:

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

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

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

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

创建样式

在 styles 目录下创建一个名为 global.css 的文件,用于设置全局样式:

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

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

在 pages 目录下的 index.js 和 posts/[slug].js 中引入 global.css:

创建数据源

在根目录下创建一个名为 posts.json 的文件,用于存放博客文章列表:

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

动态生成页面

在 pages 目录下的 index.js 中使用 getStaticProps 函数获取博客文章列表:

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

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

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

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

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

在 pages 目录下的 posts/[slug].js 中使用 getStaticProps 函数获取博客文章内容:

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

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

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

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

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

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

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

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

部署应用

将代码上传到 GitHub 或 GitLab,然后在 Vercel 上创建一个项目,即可自动部署。

总结

Next.js 是一个非常强大的 React 框架,它提供了服务器端渲染、静态导出、自动代码分割等功能,可以帮助我们快速搭建 React 应用。在实践中,我们使用 Next.js 构建了一个博客,并使用了服务器端渲染、动态生成页面等功能。

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

纠错
反馈