细粒度响应式
编译器静态分析依赖关系,状态变化时只更新真正用到的 DOM 节点,没有虚拟 DOM 的 diff 开销。
这是一个可交互的特性演示站。每一页都聚焦一个主题,左侧是说明,右侧是能真实操作的效果, 随时可以点开源码对照阅读。
当前主题:light —— 右上角开关可切换,选择会记在 localStorage 中。
<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 开销。
$state、$derived、$effect 让响应式来源显式可见,既能在组件内用,也能抽成独立的 .svelte.js 模块。
transition、in/out、animate:flip 开箱即用,配合缓动函数即可实现物理感的动画,无需第三方库。
bind: 指令让表单与状态自动同步,配合 $bindable 可以在组件之间实现真正的双向数据流。