本文转载自微信公众号「勾勾的代V的框前端世界」,作者西岭。架长转载本文请联系勾勾的什样前端世界公众号。 2021年,代V的框StackOverflow(https://stackoverflow.com/) Developer 调查中,架长Svelte 成为最受开发者欢迎的什样 Web 框架。 Svelte 是代V的框一个全新的构建用户界面的 Web 应用程序。Svelte 读法是架长[ / sf?lt /],本意是什样苗条的,细长的代V的框,优美的架长。从2019年开始,什样受到了非常多的代V的框关注,是架长开源社区目前最热门的前端框架。 Svelte 与诸如 React 和 Vue 等 JavaScript 框架类似,云服务器什样都怀揣着一颗让构建交互式用户界面变得更容易的心。 但是有一个关键的区别,Svelte 在构建/编译阶段会将应用程序转换为直接应用的 JavaScript 代码,而不是在运行阶段解释应用程序的代码。这意味着你不需要为框架所消耗的性能付出成本,并且在应用程序首次加载时没有额外损失。 Svelte 可以被用来构建整个应用程序,也可以被逐步融合到现有的代码中。你还可以将组件直接作为独立的包(package)交付,并且不会有传统框架所带来的额外开销。 在 StackOverflow 今年的调查中,Svelte 成为众人聚焦的明星,而它目前的使用量也仅次于 Vue 位列第四,大有替代 Vue 、React 的趋势。 传统框架(如 React 和 Vue)在浏览器中需要做大量的工作。与使用虚拟(virtual)DOM 不同,Svelte 将这些工作放到构建应用程序的服务器托管编译阶段来处理。有人甚至直接将 Svelte 看作前端的 “编译器”而不是框架或者库,由此可见 Svelte 和其他框架的核心差异。 Vue 作者尤雨溪,曾经对 Svelte 有一段极为恰当的描述: Svelte 的核心思想在于『通过静态编译减少框架运行时的代码量』。 举例来说,当前的框架无论是 React Angular 还是 Vue,不管你怎么编译,使用的时候必然需要『引入』框架本身,也就是所谓的运行时 (runtime)。 但是用 Svelte 就不一样,一个 Svelte 组件编译了以后,所有需要的运行时代码都包含在里面了,除了引入这个组件本身,你不需要再额外引入一个所谓的框架运行时! 果然,大佬讲话就是这么恰到好处的高防服务器不多不少 “刚刚好”。 而在我看来,Svelte 是否适合在大型项目中应用,还有待观察。虽然核心思想是不需要 “运行时”,但是项目组件越多,运行时的代码量也就越多,且组件间的代码重复率也就越高,除此之外,现阶段的周边生态确实处于基本荒芜的状态。 但是,如果你对偏原生前端开发有执念,Svelte 绝对让你浑身舒畅。 因为 Svelte 可以将组件作为独立的包(package)交付,所有如果你是在微前端架构下,做组件级开发,Svelte 就是神兵利器。 如果你对 Vue 比较熟悉,那么学习 Svelte 会让你感觉 so easy,因为 Vue 和 Svelte 都在 Template 阵营,学习成本很低。