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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Svelte 与 Astro 入门/课时/Svelte 基础
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综合练习

Svelte 基础

编译时框架、响应式语法。

35 分钟

Svelte 基础

Svelte 把组件在 构建阶段 编译成 JavaScript,而不是在浏览器里跑一个「Svelte 运行时去 diff 整棵树」。语法像增强版 HTML;响应式靠 $: 与赋值触发,无需像 React 核心 那样显式 setState。

学习目标

  • 读懂 .svelte 单文件组件结构
  • 掌握 let、响应式声明、{#each} / {#if}
  • 对比 Svelte 与 Vue 核心 模板的异同

单文件组件结构

<script>
  let count = 0;

  $: doubled = count * 2;

  function increment() {
    count += 1;
  }
</script>

<button on:click={increment}>
  {count} × 2 = {doubled}
</button>

<style>
  button { font-weight: 600; }
</style>
  • <script>:逻辑与状态
  • 模板:HTML + {表达式} + 块级语法
  • <style>:默认 scoped,类似 Vue SFC

响应式规则

写法行为
let n = 0顶层变量可变即触发更新
$: derived = f(n)依赖变化时重算
$: { ... }依赖变化时执行语句块

注意:数组/对象 原地修改 有时需 items = items 或 {...items} 触发——编译器会提示常见坑;概念上接近 Vue 的 ref 解包。

与 React / Vue 对照

概念SvelteReactVue
列表{#each}.map()v-for
条件{#if}&& / 三元v-if
事件on:clickonClick@click
双向绑定bind:value受控组件v-model

Svelte 没有虚拟 DOM:编译器知道哪个节点绑定了哪个变量,更新更直接。包体积常小于同功能 react-essentials SPA,尤其 widget 场景。

构建入口

日常用 Vite + @sveltejs/vite-plugin-svelte 或 SvelteKit(下一课)。与 frontend-toolchain-essentials 中的 Vite 课衔接:开发仍是 HMR,只是编译插件换成 Svelte。

练习

  • 在 Svelte REPL 写一个 Todo 列表(增删)
  • 把同一 UI 用 Vue ref + v-for 草写一遍,标出三处语法差异
  • 读官方 Tutorial 第 1–3 章,确认 $: 语义

小结

Svelte = 编译时优化 + 模板友好 + 细粒度响应式。 下一课 SvelteKit 补全路由、SSR 与生产项目结构。

加载本节练习…
← 上一课替代框架概览下一课 →SvelteKit