2021年6月24日,Next.js官方发布了最新的版本 Next.js 11。这次更新带来了许多有趣的新特性和改进,其中包括了多项性能优化、革新性的后端功能、更好的基础设施等等。在此篇文章中,我们将一一介绍这些新特性,包括了它们的使用方法、实际应用中的优点以及可能存在的风险。
1. 后端组件
Next.js 11 又称为 Next.js Compute,某种程度上称之为替代AWS 和 Firebase的后端。 Next.js 的后端组件是这次版本更新的最大亮点,它是 Next.js 与下一代Serverless架构合作的结果,使得 Next.js 可以同时充当前端和后端的角色。这个新功能可以让一个开发者在 Next.js 中开发部署API的时候,通过无需配置的方式,轻松地在 Next.js 中运行 JavaScript 和 Typescript 代码。
使用后端组件的好处之一是它可以轻松地将代码转移到后端,可降低了架构复杂度。当然,在开发过程中下载资源包可能有多个副作用,这也是需要考虑的缺陷之一。
下面是一个使用后端组件的简单实例:
// pages/api/hello.js
export default function hello(req, res) {
res.status(200).json({ text: 'Hello' })
}以上代码使用了 Next.js 11 的新功能之一:在 pages/api/ 目录下进行API端点设置。除此之外,还提供了默认的express.js请求和响应对象,使得使用者可以很方便的构建和部署传统web服务器上运行的Node.js应用程序。
2. Automatic Image Optimization
Next.js 的新特性之一是自动图像优化。 Next.js 11 使得我们可以更轻松地通过它内置的Image组件优化图像。Image组件默认使得图像更加快速加载,并自动包含最佳文件格式,将JPG或PNG文件转换为 WebP格式。它甚至还支持使用专业的过滤器压缩原始图片,然后自动将它们缩放成所需的大小。
以下是一个使用Next.js 的自动图像优化功能的简单实例:
-- -------------------- ---- -------
------ ----- ---- ------------
-------- ------- -
------ -
-----
------
-------------------------
-------------
-----------
------------
--
------
-
-这个代码片段使用 Next.js 11 的 Image 组件来加载和显示一张图片,在这个例子中图片被缩小到 100 x 100 像素。这里应该注意的是,Next.js 会在您的页面渲染时进行实际的图像处理,所以它可能会稍稍增加您的页面加载时间。
3. JS向CSS的默认样式输出
CSS Modules 是一种 CSS 模块化的方法,可以让开发人员更好地控制组件的样式,预防样式集成和其他问题,但是当使用 React 框架时,开发者不得不额外拓展代码来指定 CSS 类名。 因此,性能会有稍微的影响。
Next.js 11 新增了一个默认的 classnames 函数,它可以将 JavaScript 中的变量和对象转换成 CSS 类。这个新特性可以帮助我们避免CSS class组件化对性能造成的影响,提高渲染速度。
以下是 next.js 11 中的 classname 功能的使用方法:
-- -------------------- ---- -------
------ ------ ---- ---------------------
-------- ------- -
----- ------------- - -
--------- -------
------ ------
---------------- -------
-
------ -
---- --------------------------------------- ----------------
--------- ----------
------
-
-在这个例子中,我们创建了一个动态的 dynamicStyles 对象,并使用基于 Next.js 11 的classname() 函数将它转换成 CSS 类。此功能可以简化处理多样式的难度,并避免了在开发时可能出现的复杂问题。
4. 开箱即用的网站分析
网站分析是为了了解用户在使用您的网站时的行为和趋势。尽管 Google Analytics 对于网站分析非常有用,但某些开发者,特别是新手,对 Google Analytics 的使用不太熟悉。
为了方便开发者监控他们的网站访问记录,Next.js 11 新特性之一是内置的网站分析支持。新特性能够帮助开发者更快、更容易地集成并查看网站的访问情况,而无需通过 Google Analytics 来查看。这种方式对于刚刚起步的个人项目或追求更高隐私的项目是非常有用的。 下面是一个使用 Next.js 11 内置网站分析功能的示例:
// next.config.js
module.exports = {
presets: [require('next-plugin-analytics'), … ]
}首先,我们需要安装 next-plugin-analytics 插件,然后在 next.config.js 文件中将它引用并启动它。
结语
Next.js 11 带来的这些新功能相比以往版本,其优点在很多方面更加明显。除了提供更好的性能、可靠性和用户体验之外,它还可以轻松地支持开发者的现有工作流程和架构。使用 Next.js 11,开发者可以获得更高效率的开发体验,更专注于业务逻辑实现,效率得到了显著提升。希望本篇文章能对你在学习和使用 Next.js 11 时有所帮助,得到实际应用中需要的指导以及更好的开发体验。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67cda17ae46428fe9e73ff8e