介绍

Nuxt 的目标是以卓越的开发者体验为目标,使 web 开发变得直观和高效。

Nuxt 是一个免费且 开源框架,提供一种直观且可扩展的方式来创建类型安全、高性能和生产级的全栈 web 应用程序和网站,基于 Vue.js

我们已经做好了一切,以便您可以从一开始就开始编写 .vue 文件,同时在开发中享受热模块替换,在生产中享受高性能的应用程序,默认情况下支持服务器端渲染。

Nuxt 没有供应商锁定,允许您在 任何地方部署您的应用

如果您想在浏览器中尝试 Nuxt,可以 在我们的在线沙盒之一中试用

自动化和约定

Nuxt 使用约定和有主见的目录结构来自动化重复性任务,让开发者专注于推动功能。配置文件仍然可以定制和覆盖其默认行为。

  • 基于文件的路由: 基于 pages/ 目录 的结构来定义路由。这可以使组织应用程序变得更简单,避免手动路由配置的需求。
  • 代码拆分: Nuxt 自动将代码拆分为更小的代码块,这可以帮助减少应用程序的初始加载时间。
  • 开箱即用的服务器端渲染: Nuxt 内置了 SSR 功能,因此您不必自己设置单独的服务器。
  • 自动导入: 在各自的目录中编写 Vue 组合式 API 和组件,而无需导入它们,享受树摇和优化后的 JS 包的好处。
  • 数据获取工具: Nuxt 提供组合式 API 来处理 SSR 兼容的数据获取以及不同的策略。
  • 零配置的 TypeScript 支持: 使用我们自动生成的类型和 tsconfig.json 编写类型安全的代码,而无需学习 TypeScript。
  • 配置好的构建工具: 我们默认使用 Vite 来支持开发中的热模块替换 (HMR) 和以最佳实践打包您的生产代码。

Nuxt 处理这些,并提供前端和后端功能,以便您专注于重要内容:创建您的 web 应用程序

服务器端渲染

Nuxt 默认带有内置的服务器端渲染 (SSR) 功能,无需自己配置服务器,这对 web 应用程序有许多好处:

  • 更快的初始页面加载时间: Nuxt 将完全渲染的 HTML 页面发送到浏览器,可以立即显示。这可以提供更快的感知页面加载时间和更好的用户体验 (UX),尤其是在较慢的网络或设备上。
  • 改善 SEO: 搜索引擎可以更好地索引 SSR 页,因为 HTML 内容可以立即提供,而无需客户端渲染 JavaScript。
  • 在低功耗设备上的更好性能: 减少需要在客户端下载和执行的 JavaScript 量,这对于可能在处理重负载 JavaScript 应用程序时感到困难的低功耗设备非常有利。
  • 更好的无障碍性: 初始页面加载时内容立即可用,提高了依赖屏幕阅读器或其他辅助技术用户的无障碍性。
  • 更简单的缓存: 页面可以在服务器端进行缓存,这可以进一步提高性能,减少生成和发送内容到客户端所需的时间。

总的来说,服务器端渲染可以提供更快和更高效的用户体验,同时改善搜索引擎优化和无障碍性。

由于 Nuxt 是一个多功能框架,它使您能够通过 nuxt generate 将整个应用程序静态渲染到静态托管,使用 ssr: false 选项全局禁用 SSR,或通过设置 routeRules 选项利用混合渲染。

Read more in Nuxt 渲染模式.

服务器

Nuxt 服务器引擎 Nitro 解锁了新的全栈能力。

在开发过程中,它使用 Rollup 和 Node.js 工作线程来处理服务器代码和上下文隔离。它还通过读取 server/api/ 中的文件和 server/middleware/ 中的服务器中间件来生成您的服务器 API。

在生产中,Nitro 将您的应用程序和服务器构建为一个通用的 .output 目录。该输出很轻:经过压缩并去除了任何 Node.js 模块(除了填充模块)。您可以在任何支持 JavaScript 的系统上部署此输出,从 Node.js、无服务器、工作者、边缘渲染或纯静态。

Read more in Nuxt 服务器引擎.

生产就绪

Nuxt 应用程序可以部署在 Node 或 Deno 服务器上,预渲染以托管在静态环境中,或部署到无服务器和边缘提供商。

Read more in 部署部分.

模块化

模块系统允许通过自定义功能和与第三方服务的集成来扩展 Nuxt。

Read more in Nuxt 模块概念.

Nuxt 架构

Nuxt 由不同的 核心包 组成:

我们建议阅读每个概念,以全面了解 Nuxt 的能力及每个包的范围。