Next.js 会负责处理 React 应用中的许多优化工作,因此您不必
Next.js 是一个颇具特色的 React 框架,内置了多项性能优化。该框架的主要理念是通过默认包含这些功能来确保应用启动并尽可能保持高性能。
本简介将简要介绍该框架提供的许多功能。本集合中的其他指南将详细介绍这些功能。
您将学到什么?
虽然 Next.js 默认提供许多性能优化,但这些指南旨在更详细地介绍这些优化,并向您展示如何使用它们来打造快速高效的体验。
一般来说,您可以向 React 网站添加许多优化,这些优化也适用于使用 Next.js 构建的应用。我们不作说明,因为重点是 Next.js 具体提供的功能。如需详细了解常规的 React 优化,请参阅我们的 React 集合。
Next.js 与 React 有何不同?
React 是一个库,可让您使用基于组件的方法更轻松地构建界面。虽然功能强大,但 React 具体是一个界面库。许多开发者会添加模块打包器(例如 webpack)和转译器(例如 Babel)等额外工具,以获取完整的 build 工具链。
在 React 集合中,我们采用了使用 Create React App (CRA) 的方法快速启动 React 应用。CRA 通过单个命令提供完整的构建工具链,简化了设置 React 应用的麻烦。
虽然 CRA 中内置了一些默认优化,但该工具旨在提供简单明了的设置。开发者可以自行决定是否移除和修改配置。
Next.js 也可用于创建新的 React 应用,但采用了不同的方法。它可以立即提供许多开发者希望进行但难以设置的常见优化,例如:
- 服务器端呈现
- 自动代码拆分
- 路由预提取
- 文件系统路由
- CSS-in-JS 样式 (
styled-jsx
)
设置
如需创建新的 Next.js 应用,请运行以下命令:
npx create-next-app new-app
然后,导航到该目录并启动开发服务器:
cd new-app
npm run dev
以下嵌入展示了新 Next.js 应用的目录结构。
- 点击 Remix to Edit 以使项目可修改。
- 如需预览网站,请按查看应用,然后按全屏
。
请注意,pages/
目录是使用单个文件创建的:index.jsx
。Next.js 遵循文件系统路由方法,其中此目录中的每个页面都作为一个单独的路由提供。在此目录中创建新文件(例如 about.js
)将自动创建新路由 (/about
)。
组件也可以像任何其他 React 应用一样创建和使用。系统已使用单个组件 nav.js
创建了一个 components/
目录,该组件已导入 index.js
中。默认情况下,Next.js 中使用的每项导入操作仅在相应页面加载时才会被提取,从而具备自动代码拆分的优势。
此外,Next.js 中的每个初始网页加载都是服务器端呈现的。如果您在开发者工具中打开“网络”面板,则会发现对该文档的初始请求会返回一个完全由服务器渲染的页面。
![Network 面板的“Preview”标签页显示,在请求页面时,Next.js 会返回视觉上的完整 HTML。](https://web.developers.google.cn/static/articles/performance-as-a-default-with-nextjs/image/the-preview-tab-the-netw-152ca2d3f6a83.png?authuser=7&hl=ro)
这些只是 Next.js 自动提供的诸多功能中的几个。其中许多测试都是可自定义的,并且可以根据不同的使用场景进行修改。
后续操作
双关语意 😛?
本系列中的其他所有指南都将详细介绍特定的 Next.js 功能:
- 路线预提取以加快网页导航速度
- 呈现混合页面和纯 AMP 页面,以加快从搜索引擎中加载的速度
- 通过动态导入功能拆分代码拆分组件,减少 JavaScript 消耗