← 返回技术雷达
建议学习全栈框架难度:进阶建议周期:3-5 周

Nuxt 3 的 SSR、路由与数据获取

在 Vue 基础上学习文件路由、服务端渲染、数据获取、SEO 和 Nitro 服务能力。

NuxtSSRNitro

先用白话理解

它到底是什么?

Nuxt 是建立在 Vue 之上的应用框架。它提前约定了路由、数据获取、服务端渲染和项目目录,让你更容易搭建内容站与完整 Web 应用。

学习判断

现在适不适合学?

满足左侧情况可以开始;如果更符合右侧情况,先补基础通常更省时间。

适合开始
  • 已经熟悉 Vue 3 和组合式 API
  • 需要开发内容站、产品官网或带 SEO 的应用
  • 希望在 Vue 项目中加入服务端接口和混合渲染
可以先等等
  • Vue 组件、路由和异步请求仍不熟练
  • 还不能解释客户端和服务端的区别
  • 项目只是一个简单的纯客户端工具且没有 SSR 需求

学习前提

开始之前先会这些

  • 熟练使用 Vue 组件和组合式 API
  • 理解客户端与服务端的区别
  • 了解 HTTP 请求、状态码和基本 SEO

核心概念

先抓住这三个重点

01

文件路由

pages 目录中的文件会生成 URL,动态参数使用方括号文件名。

02

SSR 与水合

服务端先生成 HTML,浏览器再接管交互;两端初始输出不一致会产生水合问题。

03

数据获取

useAsyncData 和 useFetch 能在 SSR 场景中复用服务端数据,避免客户端重复请求。

最小示例

在页面中获取服务端数据

真实项目还需要定义返回类型,并处理加载、空数据和重试状态。

Nuxt 3可以复制运行
<script setup lang="ts">
const { data, error } = await useFetch('/api/posts')
</script>

<template>
  <p v-if="error">加载失败</p>
  <ul v-else><li v-for="post in data" :key="post.id">{{ post.title }}</li></ul>
</template>

动手练习

按这个顺序做一遍

不要只复制最小示例。下面三项能独立完成,说明你已经开始掌握这项技术。

  1. 01

    创建静态页和动态详情页

  2. 02

    使用 useFetch 获取服务端数据并处理错误状态

  3. 03

    为页面增加 SEO、站点地图和一条 Nitro API

初学者常见误区

  • 在服务端执行只存在于浏览器的 window 或 document。
  • 把所有页面都强制 SSR,却没有评估缓存和服务器成本。
  • 同时使用多套请求方式导致数据重复获取。

学完后的检查清单

  • 会创建静态和动态页面路由
  • 理解 useFetch 的服务端执行行为
  • 能设置基础 SEO 和路由规则

官方资料

继续学习与查阅