CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Svelte 与 Astro 入门/课时/Astro 入门
RawBlame
课时目录12 节

Svelte 与 Astro 入门

  1. 01替代框架概览
  2. 02Svelte 基础
  3. 03SvelteKit
  4. 04Astro 入门
  5. 05Eleventy 静态站
  6. 06静态站点生成
  7. 07与 React 对比
  8. 08数据加载
  9. 09样式与组件
  10. 10部署
  11. 11何时选用
  12. 12综合练习

Astro 入门

群岛架构、MDX、多框架组件。

35 分钟

Astro 入门

Astro 面向 内容站点:默认输出 几乎零客户端 JS 的 HTML;需要交互的组件以 群岛(Islands) 形式按需 hydrate。可嵌入 React、Vue、Svelte 组件——与只选 react-essentials 或 vue-essentials 单栈并不冲突。

学习目标

  • 理解群岛架构与 client:* 指令
  • 会用 .astro 页面 + MDX 写文档页
  • 对照 next-mdx 理解内容渲染差异

.astro 页面

---
//  frontmatter:服务端运行,不进浏览器
const tracks = ["react", "vue", "svelte"];
---
<html lang="zh-CN">
  <body>
    <h1>前端路线图</h1>
    <ul>
      {tracks.map((t) => <li>{t}</li>)}
    </ul>
  </body>
</html>
  • --- 之间:Node 侧逻辑,可 fetch、读文件
  • 模板:类 JSX 但 默认不 hydrate
  • 样式:<style> 默认 scoped

群岛与多框架组件

---
import Counter from '../components/Counter.jsx';
---
<Counter client:load />
指令行为
client:load页面加载即 hydrate
client:visible进入视口才 hydrate
client:idle浏览器空闲时 hydrate

原则:整页用 React 包一层 = 回到重 bundle;只给 搜索框、主题切换 等岛加 JS。

MDX 与内容集合

Astro Content Collections 用 schema 校验 frontmatter,适合课程、博客:

src/content/docs/
  intro.mdx
  sa-intro.md

渲染管线类似本站 contentMd → 服务端编译,但 Astro 在 构建时 生成静态 HTML,而非 Next RSC 运行时。与 html-css-essentials 的语义结构 + Markdown 工作流天然契合。

Astro vs Next(内容站视角)

AstroNext.js
默认 JS极少RSC + 客户端边界
多框架官方支持以 React 为主
动态 API
可选 SSR 路由
Route Handlers 成熟
本站 stack可选文档子站platform 主栈

练习

  • npm create astro@latest 选 Docs 模板
  • 加一个 MDX 页,内嵌一个 Svelte 或 React 计数器并设 client:visible
  • 对比 build 产物大小与同等 Vite+React SPA

小结

Astro = 静态 HTML 为主 + 按需 hydrate + MDX/内容集合。 下一课 Eleventy:更极简的模板静态站。

加载本节练习…
← 上一课SvelteKit下一课 →Eleventy 静态站