Svelte 5 Runes · SvelteKit 3

把 Svelte 的核心特性
一个个跑起来

这是一个可交互的特性演示站。每一页都聚焦一个主题,左侧是说明,右侧是能真实操作的效果, 随时可以点开源码对照阅读。

从响应式开始 →

当前主题:light —— 右上角开关可切换,选择会记在 localStorage 中。

Counter.svelte
<script>
  let count = $state(0)
  const double = $derived(count * 2)
</script>

<button onclick={() => count++}>
  {count} × 2 = {double}
</button>

<style>
  button { font-weight: 700 }
</style>

四大特性

细粒度响应式

编译器静态分析依赖关系,状态变化时只更新真正用到的 DOM 节点,没有虚拟 DOM 的 diff 开销。

Runes 语法

$state、$derived、$effect 让响应式来源显式可见,既能在组件内用,也能抽成独立的 .svelte.js 模块。

内置过渡动画

transition、in/out、animate:flip 开箱即用,配合缓动函数即可实现物理感的动画,无需第三方库。

双向绑定

bind: 指令让表单与状态自动同步,配合 $bindable 可以在组件之间实现真正的双向数据流。

演示页面

基于 Svelte 5 与 SvelteKit 构建 · 全部示例均可在浏览器中实时交互