Svelte 是编译时前端框架,将 .svelte 组件直接编译为高效原生 JS,无虚拟 DOM 和运行时依赖;响应式通过 $: 编译生成更新逻辑;样式默认局部作用域;单文件结构融合模板、逻辑与样式。
Svelte 是一种构建用户界面的前端 JavaScript 框架,但它不是运行时框架——它在构建时就把组件编译成高效、无框架依赖的原生 JavaScript 代码,直接操作 DOM。
传统框架(如 React、Vue、Angular)需要在浏览器中运行运行时库,负责虚拟 DOM 对比、响应式追踪、模板解析等。Svelte 则在构建阶段完成这些工作:
.svelte 文件编译为精简的 JS,没有虚拟 DOM 层,也没有运行时响应式系统开销Svelte 的响应式不是靠 Proxy 或 Object.defineProperty 拦截,而是通过编译器识别 $: 声明和赋值语句,自动生成更新逻辑:
$: doubled = count * 2 —— 编译器自动插入监听逻辑,当 count 变化时重算useState、ref 或 computed 等 API,状态更新写法接近普通 JSSvelte 组件中的 默认
是局部作用域:
.title.svelte-abc123),避免 CSS 冲突:global(...) 显式穿透,也支持 :deep() 和 ::slotted 处理子组件样式一个 Svelte 组件是单文件(.svelte),融合模板、逻辑、样式,结构清晰:
{#if}、{#each}、on:click 等指令export default 配置对象onMount、beforeUpdate)都以函数形式按需引入,不强制封装不复杂但容易忽略:Svelte 的优势不在语法炫技,而在构建阶段把框架逻辑“蒸发”掉,让最终运行的是你写的逻辑,而不是框架调度的逻辑。