• 产品简介
  • 快速开始
    • 导入 Git 仓库
    • 从模板开始
    • 直接上传
    • 从 AI 开始
  • 框架指南
    • 前端
    • 后端
    • 全栈
      • Next.js
      • Nuxt
      • Astro
      • React Router
      • SvelteKit
    • 自定义 404 页面
  • 项目指南
    • 项目管理
    • edgeone.json
    • 缓存配置
    • 错误码
  • 构建指南
  • 部署指南
    • 概览
    • 触发部署
    • 管理部署
    • 部署按钮
    • 使用 Github Action
    • 使用 CNB 插件
    • 使用 IDE 插件
    • 使用 CodeBuddy IDE
  • 域名管理
    • 概览
    • 自定义域名
    • 配置 HTTPS 证书
      • 概览
      • 申请免费证书
      • 使用 SSL 托管证书
    • 配置 DNS 的 CNAME 记录
  • 可观测性
    • 概览
    • 指标分析
    • 日志分析
  • Pages Functions
    • 概览
    • Edge Functions
    • Cloud Functions
      • 概览
      • Node Functions
  • KV 存储
  • 边缘 AI
  • API Token
  • EdgeOne CLI
  • Pages MCP
  • 集成指南
    • AI
      • 对话型大模型集成
      • 图片大模型集成
    • 数据库
      • Supabase 集成
      • Pages KV 集成
    • 电商
      • Shopify 集成
      • WooCommerce 集成
    • 支付
      • Stripe 集成
      • Paddle 集成
    • CMS
      • WordPress 集成
      • Contentful 集成
      • Sanity 集成
    • 身份验证
      • Supabase 集成
      • Clerk 集成
  • 最佳实践
    • 使用通用大模型快速搭建 AI 应用
    • 使用边缘 AI 模型快速搭建对话型 AI 站点
    • 使用 Shopify 搭建电商平台
    • 使用 Supabase 和 Stripe 搭建 SaaS 站点
    • 如何快速搭建公司品牌站点
    • 如何快速搭建博客站点
  • 迁移指南
    • 从 Vercel 迁移至 EdgeOne Pages
    • 从 Cloudflare Pages 迁移至 EdgeOne Pages
    • 从 Netlify 迁移至 EdgeOne Pages
  • 排障指南
  • 常见问题
  • 联系我们
  • 产品动态

Nuxt

Nuxt 是一个能让你用 Vue.js 轻松构建出快速、强大且对搜索引擎友好的网站的开发框架。
注意:
目前 Pages 对 Nuxt 版本的支持为 3.16.0+,推荐使用最新的 Nuxt。


核心特点

Nuxt 的核心特性可以概括为“约定优于配置”的理念,在此理念下为开发者提供了一整套解决方案,旨在提升开发体验和优化应用性能。具体包括:

多种渲染模式:这是 Nuxt 最著名也是最核心的特性。它让你能够根据项目需求,自由选择最合适的渲染策略,而无需重写大量代码。
文件式路由:Nuxt 会自动根据你放在 pages/ 目录下的 Vue 文件结构来生成应用的路由配置。
强大的数据获取:为了配合服务端渲染,Nuxt 提供了专门的 Composables (组合式函数) 来处理数据获取。
自动导入:Nuxt 会自动导入特定目录中定义的组件、组合式函数和插件。开发者无需手动 import,在任何 .vue 文件中直接使用组件和函数。
服务端引擎 Nitro:这是 Nuxt 3/4 的“心脏”,一个全新的、高性能的服务端引擎。


快速开始

在 EdgeOne Pages 上快速部署 Nuxt 的项目,可以通过以下方式:

通过 Git 仓库导入 Nuxt 项目
从 Pages 模版库选择 Nuxt 模版进行部署

了解 Nuxt 在 Pages 的部署表现,可以点击下方的示例模板:



Pages 对 Nuxt 的特性支持

Pages 支持 Nuxt 3.16.0+ 的部署,还是更推荐使用 Nuxt4 的最新版本,下表是 Pages 目前支持 Nuxt 的关键特性,如下:
Nuxt 特性
支持情况
服务端渲染(SSR)
静态站点生成(SSG)
增量静态生成(ISR/SWR)
中间件
流式传输
Layers
暂不支持
@nuxt/image
优化暂不支持,不影响正常图片渲染


在 Pages 部署 Nuxt 项目

Git 连接部署

您可以将项目提交到 GitHub,GitLab 等平台,然后使用我们的 Git 连接部署


CLI 部署

也可以安装 Pages 的脚手架工具,详细安装和使用方法请参考 EdgeOne CLI。配置完成后,使用 edgeone pages deploy命令部署项目。在部署过程中,CLI 会先自动构建项目,然后将构建产物上传并发布。
注意:
EdgeOne CLI 版本要求 ≥ 1.2.4,部署前请先检查版本,避免部署失败。


服务端渲染 (SSR)

服务端渲染允许您在服务器上动态渲染页面。每次用户发起请求时,服务器动态获取数据并生成 HTML,提供更好的 SEO 和首屏加载体验。在 Nuxt 框架中默认使用 SSR。

<script>中可以使用 Nuxt 提供的数据请求函数,不需要额外引入。Nuxt 自带两个可组合模块和一个内置库,用于在浏览器或服务器环境中进行数据取用:useFetch、useAsyncData 和 $fetch。

$fetch 是发起网络请求的最简单方式。
useFetch 是一个环绕 $fetch 的包裹器,在通用渲染中只取一次数据。
useAsyncData 是一个通用的异步任务处理器,它能将任何异步操作(如 API 请求、数据库查询、复杂计算)无缝集成到 Nuxt 的渲染生命周期中,并自动处理好服务器端渲染(SSR)、客户端导航和状态管理。

// $fetch
<script setup lang="ts">
const headers = useRequestHeaders(['cookie'])

async function getCurrentUser () {
return await $fetch('/api/me', { headers })
}
</script>

// useFetch
<script setup lang="ts">
const { data } = await useFetch('/api/echo')
</script>

// useAsyncData
<script setup lang="ts">
const { data, error } = await useAsyncData('users', () => myGetFunction('users'))

// 也可以这样编写
const { data, error } = await useAsyncData(() => myGetFunction('users'))
</script>



静态生成 (SSG)

Nuxt 提供了强大且灵活的静态站点生成 (SSG) 能力,支持从全局预渲染到页面级精细化控制的多种策略。

全局静态生成这是 Nuxt 最直接的静态化方式。通过执行构建命令 nuxt generate,Nuxt 的服务端引擎 Nitro 会启动一个爬虫,从应用入口开始,递归地访问所有内部链接,并将每个可访问的页面预渲染(Prerender)为静态的 HTML 文件。

页面级精细化控制 (Hybrid Rendering)对于更复杂的应用,您可能希望实现混合渲染。这可以通过在 nuxt.config.ts 文件中配置 routeRules 来实现。routeRules 允许您为匹配特定路径模式的路由声明渲染规则。
export default defineNuxtConfig({
routeRules: {
'/about': {
prerender: true
},
'/test/:id': {
prerender: true
}
}
})



增量静态生成(ISR/SWR)

除了完全静态预渲染,Nuxt 还通过其强大的服务端引擎 Nitro 提供了增量静态生成 (ISR) 的能力。其核心是实现了 Stale-While-Revalidate (SWR) 缓存策略。

您可以在 nuxt.config.ts 文件中,利用 routeRules 为特定路由模式精细地配置 ISR/SWR 行为。
// nuxt.config.ts
export default defineNuxtConfig({
routeRules: {
// 为新闻版块启用 SWR,缓存有效期为 5 分钟。
// 这意味着新闻内容最多有 5 分钟的延迟,但页面加载速度始终是静态的。
'/news/**': { swr: 300 },

// 对于更新不频繁的“关于我们”页面,可以设置更长的缓存时间,例如一天。
'/about': { swr: 86400 } // 24 * 60 * 60
}
})

这种方法特别适用于内容会周期性更新但不需要实时性的场景,例如:电商网站的商品详情页、新闻门户的文章页、以及依赖外部 API 的数据展示页面。


更多资源


ai-agent
你可以这样问我
如何开始使用 EdgeOne Pages?