Next.js 13.3 发布,添加多个新功能


Next.js 13.3 近日正式发布,新版本添加了多个社区用户要求的受欢迎的功能,并会在下一个次要版本中将 App Router 标记为稳定,Next.js 13.3 具体更新内容包括:

基于文件的 Metadata API

在 Next.js 13.2 中,Next.js 公布了一个新的 Metadata API,允许用户通过从布局或页面导出 Metadata 对象来定义元数据(例如 HTML head元素中的 titlemetalink标签)。

// layout.js or page.js

// either Static metadata
export const metadata = {
title: 'Home',
};
// Output:
// <head>
// <title>Home</title>
// </head>

// or Dynamic metadata
export async function generateMetadata({ params, searchParams }) {
const product = await getProduct(params.id);
return { title: product.title };
}
// Output:
// <head>
// <title>My Unique Product</title>
// </head>

export default function Page() {}

除了基于配置的元数据外,Metadata API 现在还支持新的文件约定,开发者可以方便地自定义页面以改进 SEO 和在 Web 上共享:

  • opengraph-image.(jpg|png|svg)
  • twitter-image.(jpg|png|svg)
  • favicon.ico
  • icon.(ico|jpg|png|svg)
  • sitemap.(xml|js|jsx|ts|tsx)
  • robots.(txt|js|jsx|ts|tsx)
  • manifest.(json|js|jsx|ts|tsx)

动态 OG 图像生成

六个月前,Next.js 发布了 @vercel/og 和 Satori 库,它们允许您使用 JSX、HTML 和 CSS 动态生成图像。

自发布以来,随着 Vercel 客户的广泛采用和超过 900,000 次下载,Next.js 很高兴能够将动态生成的图像引入所有 Next.js 应用程序,而无需外部包。

现在可以从 next/server导入 ImageResponse生成图像:

// /app/about/opengraph-image.tsx
import { ImageResponse } from 'next/server';

export const size = { width: 1200, height: 600 };
export const alt = 'About Acme';
export const contentType = 'image/png';

export default function og() {
return new ImageResponse();
// ...
}

App Router 的静态导出

Next.js App Router 现在完全支持静态导出。开发者可以从静态网站或单页应用程序(SPA)开始,然后再选择性地升级,以使用需要服务器的Next.js功能。

在运行 next build 时,Next.js会在每个路由中生成一个HTML文件。通过将严格的SPA分解成单独的HTML文件,Next.js可以避免在客户端加载不必要的JavaScript代码,减少包的大小,实现更快的页面加载。

/**
 * @type {import('next').NextConfig}
 */
const nextConfig = {
output: 'export',
};

module.exports = nextConfig;

并行路由和拦截

Next.js 13.3 引入了新的动态约定,允许开发者实现高级路由案例: 并行路由和拦截路由。这些功能使你能够在同一个视图中显示一个以上的页面,比如复杂的仪表盘等。

通过并行路由,你可以在同一个视图中同时呈现一个或多个可以独立浏览的页面。它还可以用来有条件地渲染页面。

并行路由是使用命名的 "slots" 创建的。Slots 是用 @folder 约定进行定义的。

拦截路由允许您在当前布局中加载新路由,同时 “屏蔽” 浏览器 URL。 当保持当前页面的上下文很重要时,这很有用。

拦截路由可以使用 (..) 约定进行定义,类似于相对路径 ../. 开发者还可以使用 (...) 约定创建相对于 app 目录的路径。

其他

  • Next.js 主页和展示页面已经更新了新的设计
  • next.config.js 的快速刷新
  • 针对 create-next-app 的 Tailwind CSS
  • 改进的样式表加载
  • ……

更多详情可查看:https://github.com/vercel/next.js/releases/tag/v13.3.0


相關推薦

2022-09-10

变化: 改进的 Fast Refresh:快速迭代对于本地开发工作流程至关重要。Next.js 使用 Fast Refresh 来即时反馈对 React 组件所做的编辑。.env、 jsconfig.json 和 tsconfig.json 文件现在可以热重载 TypeScript 自动安装:Next.js 内置了对自动配

2022-10-26

Next.js 13 现已发布,一些亮点更新内容包括: app/ Directory (beta):更简单、更快、更少的客户端 JS。 Layouts React Server Components Streaming Turbopack (alpha):速度提高 700 倍的基于 Rust 的 Webpack 替代品。 新的 next/image&n

2022-12-24

Next.js 13.1 近日正式发布,主要改进内容包括: app目录(测试版)的改进:改进了可靠性和性能 内置模块转译:将 next-transpile-modules 功能带入核心 Edge 运行时(稳定版):用于 Edge 的轻量级 Node.js 运行时 Turbopack 更新:支

2022-08-27

:新的 Next.js 功能通常在 Netlify 平台上由 Next.js 开源团队发布之日就本地启用、测试和支持。 增强的用户体验:Next.js 开发人员在其网站和应用程序的构建和部署工作流程中可拥有无缝的用户体验。 根据介绍,目前已有一些

2023-05-06

达到稳定,可用于生产。 App Router(稳定) 自 6 个月前发布 Next.js 13 以来,团队一直专注于为 Next.js-App Router 的未来打下基础,以一种可以渐进式采用的方式,避免不必要的破坏性变化。随着 13.4 的发布,开发者现在可以开始

2023-10-30

提供了网站托管服务,让开发者能够在上面开发、预览和发布 Web 应用,同时优化了前端开发者的开发和部署体验。 Next.js 14 主要变化: Turbopack: App & 页面路由通过了 5000 项测试 本地服务器启动速度提升 53% 使

2023-10-30

提供了网站托管服务,让开发者能够在上面开发、预览和发布 Web 应用,同时优化了前端开发者的开发和部署体验。 在最新发布的 Next.js 14 中,Server Actions 已到达稳定阶段。其团队表示,Server Actions 改进了开发者在编写数据

2022-03-07

WebStorm 2022.1 EAP 4 现已可用,该版本带来更好的 Next.js 支持、支持 Volta、对 Yarn 和 pnpm 的 Corepack 支持,以及新增一个“运行当前文件”功能。 更好的 Next.js 支持 此版本改进了对 Next.js 框架的支持。WebStorm 将正确解析组件&nb

2023-02-26

Next.js 13.2 近日正式发布,该版本包括对 App Router(app)的重大改进,为稳定性做准备。 内置 SEO 支持:新的元数据 API,可设置静态和动态meta标签。 路由处理程序:自定义请求处理程序,建立在 Web Request和 Response上。 MDX fo

2022-04-13

1 版本是 WebStorm 今年的第一个重大更新,该版本现已正式发布,更新的重点内容包括改进了对 Next.js 的支持、与 Volta 完全集成、能够从 Markdown 文件运行命令,以及对 Docker 的更新等。 v2022.1 的具体更新内容如下: 框架和技

2023-09-22

四世同堂,凭什么开发 30 岁就要被干掉? Next.js 13.5 已发布。Next.js 是一个用于服务器渲染的通用 JavaScript Web 应用程序的小型框架,该框架基于 React、Webpack 和 Babel 构建,为该网站提供了强大的支持。 新版本主要变化 本

2024-03-10

FreeBSD 13.3 已发布,该版本主要更新了组件和驱动程序,同时提升了 WiFi 驱动程序稳定性。 主要变化 LLVM 和 clang 编译器更新至 17.0.6 版本 OpenSSH 更新至 9.6p1 版本 Sendmail 更新至 8.18.1 版本 ZFS 

2024-01-09

FreeFileSync 是一款开源软件,适用于 Windows、macOS 和 Linux。FreeFileSync 本质是一个用于文件夹对比和同步的软件,它可以创建和管理所有重要文件的备份副本。FreeFileSync 不是每次都复制每个文件,而是确定源文件夹和目标文件夹之

2022-08-16

Turborepo 1.4 已发布。 Turborepo 是一个适用于 JavaScript 和 TypeScript 代码库的高性能 monorepo 构建系统。 所谓 monorepo,简单来说就是将所有项目代码放到一个 Git / Mercurial / Subversion 代码仓库中。当下许多大型前端项目和公司都采