JS 框架 词条目录
前端Wiki/词条/Svelte

Svelte

定义把响应式做到编译期的前端框架,没有虚拟 DOM,构建时生成精准更新 DOM 的命令式代码

大多数框架把响应式逻辑放在运行时:发数据变化后比对虚拟树再修补 DOM。Svelte 换了个思路——这些分析在编译阶段完成:它看着源码里谁依赖谁,直接生成出修改对应 DOM 节点的具体指令。运行时极小、包体只有几 KB,也不需要 diff 计算。

写法上它接近写 HTML 与 JS 本身:一个 .svelte 文件里 script、markup、style 三段,状态是普通变量,赋值即触发更新。代价是离开了运行时框架,调试工具与生态丰度不及 React/Vue,复杂巨型应用上选型需谨慎。

JavaScript
// Svelte 思想的伪代码:编译期生成精准 DOM 更新指令
// 源码(开发者写的)
// <script> let count = 0; </script>
// <button on:click={() => count++}>{count}</button>

// 编译后大致产物(框架思想演示)
var count = 0;
var button = document.createElement('button');
var text0 = document.createTextNode(String(count));
button.appendChild(text0);
button.addEventListener('click', function () {
  count++;                       // 赋值即触发
  text0.data = String(count);    // 编译器知道只需更新这一个文本节点
});
document.body.appendChild(button);
// 对比虚拟 DOM 方案:每次都要 diff 整棵子树
⚠ 常见误区
🔗 相关词条响应式原理Vite
← 返回来源章节Vue