首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >Svelte >Svelte 的响应式原理与基于虚拟 DOM 的框架有何不同?

Svelte 的响应式原理与基于虚拟 DOM 的框架有何不同?

词条归属:Svelte

1. 基于虚拟 DOM 的框架的工作方式

React、Vue 等主流框架在浏览器中维护一份虚拟 DOM(或等价的轻量节点描述)。当状态变化时,框架先在虚拟 DOM 上进行比对(diffing),计算出最小变更,再批量应用到真实 DOM。这套机制灵活,能处理任意的动态更新,但比对与协调本身会带来运行时开销。

2. Svelte 在编译期确定更新逻辑

Svelte 没有虚拟 DOM。编译器在编译阶段就能静态分析出"哪个变量被模板的哪些位置引用",于是可以为每个响应式赋值点生成精确的 DOM 更新代码。当变量被修改时,运行时直接执行对应的 DOM 操作,无需比对,也无需协调。

3. 由此带来的差异

由于省去了虚拟 DOM 这一层,Svelte 应用没有框架运行时的常驻开销,编译产物更小,首次渲染与局部更新的路径更短。代价是响应式的可追踪性依赖编译期的静态分析:对于编译期无法确定的动态属性访问等场景,需要借助显式的响应式机制(如 Runes)来表达。

相关文章
干货 | 携程机票前端Svelte生产实践
作者简介 shuan feng,携程高级前端开发工程师,关注性能优化、低代码、svelte等领域。 一、技术调研 最近几年,前端框架层出不穷。近两年,前端圈又出了一个新宠:Svelte。作者是 Rich Harris,也就是 Ractive, Rollup 和 Buble的作者,前端界的“轮子哥”。 通过静态编译减少框架运行时的代码量。一个 Svelte 组件编译之后,所有需要的运行时代码都包含在里面了,除了引入这个组件本身,你不需要再额外引入一个所谓的框架运行时! 在Github上拥有 5w 多的 st
携程技术
2022-06-06
3.1K0
Vapor Mode发布前,你应该知道的一些事情!
Vue3的Vapor Mode概念不知不觉已经提出来一年了,可以说是吊足了coder们的胃口,我去年的一篇莫名其妙成为爆款的文章🎉尤雨溪为什么要推出Vapor Mode🎉中,我直观的展示了细粒度更新dom的优点,让大家历历在目!
萌萌哒草头将军
2025-02-19
1.1K0
2024 年值得关注的 JavaScript 最前沿趋势,走起!
# 2023 JavaScript Rising Stars 最新统计趋势显示 JavaScript 最前沿趋势。
掘金安东尼
2024-02-24
1.3K0
Web 框架能解决什么问题?
Noam Rosenthal 对各个框架的共性技术特性进行了深入的探讨,并说明了各种框架是怎样实现这些特性的,并说明了其成本。
深度学习与Python
2022-04-19
2.2K0
一文讲透前端新秀 svelte
本文作者:nicolasxiao,腾讯前端高级工程师 引言 本文基于笔者在实际项目中应用svelte的调研报告整理而来,实际项目中,通过将 vue3 替换成 svelte,框架体积就从337.46kb减少到18kb,页面性能指标提升了57%。通过阅读本文,可以快速全面了解 svelte 的优缺点,社区支持,基础使用及核心原理。如果您想在实际项目中使用svelte,可以通过本文获得有力的佐证及足够信心。 1 svelte 是什么? 2、3年前就已经听说过 svelte 这个框架,但一直没有实际使用。svel
欧文
2023-02-28
8.1K1
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券