曾遭尤雨溪嫌弃的 Svelte 终于进化至 4.0

深入解析 Svelte:下一代前端框架的革命 Svelte 是一款前端框架,与 React、Vue 等传统框架不同,它采用方式来优化前端应用。它不像 React 或 Vue 依赖虚拟 DOM,而是在编译阶段直接生成高效的原生 JavaScript 代码,使其拥有。 阅读详情

前言

不知大家听没听说过 Svelte 这个框架,这个框架在国外非常有名,并且呼声很高。虽然目前无论是从生态、成熟度、使用人数以及知名度上都无法与 Vue 进行抗衡,但它的增长态势令人十分汗颜,即使是 Vue 也不得不正面直视这个潜力无比巨大的竞争对手。

但在国内相对而言它就不那么出名,多种因素都制衡了它的发展。首先就是 Svelte 这个单词不是很好读,英语不过关的人也不太容易通过这个单词来推测它的发音,甚至有相当一部分人到现在也不知道这单词该怎么读。其次就是写起来也麻烦,这个单词实在是太长了,它和 Vue 一样,都采用了单文件组件的形式,甚至它的 VSCode 插件都是从 Vue 原来的 VSCode 插件 Vetur 那魔改来的。假如我们想创建一个叫 Component 的组件:

  • Vue:Component.vue
  • Svelte:Component.svelte

每次创建组件的时候都要写这么长串个单词会让人觉得很难受,不仅是写着别扭,看着也不太舒服:

尤其是这个单词还很容易拼错,因为它还和其它一些单词十分相似(如:Servlet)

推荐大家去看看《看完 Svelte 纪录片才知道它为什么在国外比国内火》这篇文章,里面就记录了该作者为啥要给自己的框架起个这么拗口的名字,而且最有趣的一点是 Svelte 这个单词在欧美也不是一个常见的单词,那边说人苗条都用 thin 这个单词,而不是 Svelte。所以很多人以为这是个瞎编乱造出来的词,听起来有点像是洗碗机或者平板电脑之类的品牌:

Svelte 的意思是苗条的,因为它的一大卖点就是体积小,但实际上它的这个卖点只存在于小项目上,尤雨溪也曾在某问答平台上毫不留情的指出了它的问题:

这是外网广为流传的一张图:

蓝色 React,红色 Svelte,当组件数量达到 120 个以上时,Svelte 的优势便不复存在。但!这一缺陷即将得到缓解,随着 Svelte 4.0 的到来,Svelte 5 也快了。听到这有些朋友可能就懵了:

随着 Svelte 4.0 的到来,Svelte 5 也快了?要知道 Svelte 3.0 到现在的 4.0 可是足足有四年的时间,哪有刚发一个大版本紧接着又发一个大版本的?其实还真有:比方说大名鼎鼎的 React,它也是从 React 16 之后过了好几年才发 17 的吧?但才过了多久马上就 18。还有 Vite,这些可都是知名度很高的前端网红,是不是 Vite 3 之后马上就 Vite 4 了?

Svelte 4 也是同理,它有点类似于 React 从 16 到 18,17 只是个过渡版,是为了下一个大版本所进行的铺垫。即使是这样,Svelte 4 也依然带了了许多性能改进,已经不会像之前尤大说的那样,组件越多就越拉胯了。

Svelte 5 就不一样了,完全重写,除了再次大幅度提高性能之外,还带来了许多新功能,这次 Vue 真的要汗颜了💧

正文

该文来自于 Svelte 官网,地址:https://svelte.dev/blog/svelte-4

译

经过几个月的制作,我们很高兴地宣布 Svelte 4 稳定版发布。

时间过得真快 - Svelte 3 发布已有四年多了!在 JavaScript 框架时代,这已经是亿万年了。Svelte 的新鲜感贯穿始终,但 Node.js 和浏览器 API 在此期间不断发展,今天我们正在更新 Svelte 以利用其中的一些改进。Svelte 4 主要是一个维护版本,提高了最低版本要求并加强了特定领域的设计。它为下一代 Svelte(即 Svelte 5)的发布奠定了基础 - 我们相信您会喜欢它。

如果您还没有尝试过 Svelte,请在我们的交互式教程、StackBlitz或本地使用npm create svelte@latest. Svelte 可让您利用 HTML、CSS、JS 和 Svelte 编译器的强大功能轻松生成 Web 界面。观看Svelte Radio Live以了解有关此版本的更多信息。

性能

此版本会产生更小、更快的 SSR 代码。为了查看影响,SvelteKit 用户可以通过 .svelte-kit/output/client/_app/immutable/nodes 文件夹来查看其编译输出的大小缩小。例如,在kit.svelte.dev上,整个站点生成的 JS 尺寸减少了 12.7%(126.3 kb 至 110.2 kb)

Svelte 4 将 Svelte 包大小减少了近 75%(10.6 MB 减少到 2.8 MB),这意味着npm install、首次在learn.svelte.dev上加载我们的交互式学习体验的用户、Svelte REPL 的用户以及连接受限(译者注:说的不是咱们吧?)的用户来说,这一改进尤其明显。剩余的包大小大部分是 eslint 支持,这需要分发 CJS 构建,一旦eslint 重写完成,Svelte 包大小可能会再下降 50% 以上。

Svelte 中的依赖项数量已从 61 个大幅减少到 16 个。这意味着我们的用户下载速度更快,并且更不容易受到供应链攻击。我们还稍微减少了最新版本 SvelteKit 中的依赖项数量。

向下兼容

Svelte 4 使 Svelte 创作体验更加直观和一致:|local现在是过渡的默认设置,以避免动画阻塞页面过渡,预处理器现在更易于编写,多个修复使 CSP 更易于设置和使用。

对于 Web Components 的用户来说,最大的变化是使用 Svelte 创作自定义元素的方式的彻底改变。通过改变它们的生成方式,消除了一整类错误和不一致行为。

最后,我们还对 IDE 创作体验进行了一些改进:在 Svelte 模块中使用 cmd + 单击现在可以带您进入实现,而不是 .d.ts 导入的文件,svelte/internal 现在被隐藏,并且不会自动完成、自动导入,现在变得更加稳定可靠。

更新了官网、文档和教程

官方网站svelte.dev已进行全面改版。它现在分为多个页面,具有改进的移动导航、彻底修改的 TS 文档、深色模式和增强的 REPL。SvelteKit 网站也正在更新以配合。我们更新了所有教程链接以指向我们新的learn.svelte.dev体验。旧教程仍然适用于 Safari 16.3 及更早版本的用户。

请继续关注有关未来几天内所有网站更改的更深入的博客文章!

迁移

大多数与 Svelte 3 兼容的应用程序和库应该都与 Svelte 4 兼容。如果在 peerDependencies 中指定了 Svelte,库作者将需要将版本更新成 Svelte 4。对于应用开发来说,最常见的更改是更新工具以满足新的最低版本要求,例如 Node 16。许多其他迁移步骤可以使用 npx svelte-migrate@latest svelte-4.

请阅读迁移指南以获取完整详细信息。

Svelte 5: 下一代 Svelte

Svelte 5 将重写 Svelte 编译器和运行时。Svelte 4 主要是通过采用现代工具并放弃对各种技术的某些旧版本的支持,为未来的改进奠定基础。这些更改将以多种方式帮助我们,例如能够更轻松地比较 Svelte 5 和 Svelte 4 代码库,并能够针对新实现运行现有测试。Svelte 5 将为 Svelte 带来重大新功能和性能改进。更改仍在酝酿中,尚未准备好分享,但请继续关注!

结语

说实话看完这篇文章我不由得为 Vue 捏了一把汗,因为 Svelte 在国外的热度数据十分惊人:

一共有七万多名开发者接受了调查,蓝色代表渴望,红色代表欣赏,也就是说有四分之三的开发者都十分欣赏 Svelte,遥遥领先其他框架:

而且从这一回答就能够侧面体现出 Svelte 的火爆程度:

那时候还只是 2021 年,如今都 2023 了,火爆程度与之前相比可谓有过之而无不及。但有人可能会问:如果真的那么火的话,也没见多少人用啊?都是叫好不叫座吧?

这么说确实有一定的道理,因为 Svelte 其实还是有着较为明显的短板的,比方说尤大说的那几点,但这次更新已经大幅度改善了,不过依然还是没改善到能让这两条线不相交的程度:

但 Svelte 5 完全重写后可就不一定了,如果真的能把这些缺点全部解决的话,那尤雨溪可真的就要哭晕在厕所了:

剩下的生态也会慢慢发展起来的,绝对会大幅度蚕食 Vue 的市场份额,因为现在的 Vue 每次更新都要往里加语法糖,争议极大:

而且它确确实实正在变得越来越臃肿,一行都快写不下了:

<script lang="ts" setup generic="T extends { name: string }">
</script>

鬼知道 Vue3.4、3.5、3.6、甚至是 4.0 会变成什么鬼样子!而 Svelte 反而让人找到了当初 Vue 2 那种简单易上手的感觉,语法糖就一个 $:,触发更新也好记,只有等号 = 才会触发更新。不过在中国 Svelte 还是无法撼动 Vue 的地位,之前 Vue 正是凭借简洁易用等优势在各大培训机构里获得了老师们的青睐,老师讲啥底下的学生就学啥,一批批 “Vue” 开发者大批量的涌入市场,进一步提升了 Vue 的市场份额。但目前明显是 Svelte 更简单,只不过在中国没人会招只会 Svelte 的前端,所以为了就业,培训班们估计也不会教。

不过就算在中国的市场份额高点其实也没什么大不了的,因为中国都是一群白嫖怪,尤雨溪曾说给他捐赠的都是国外开发者(或公司),国内基本没有,他在国外的收入是国内的 20 倍!但这条评论目前找不到了,可能是他给删了吧,为什么要删呢?因为:

如果他想要钱,就不能留着那条评论,不然让人看了觉得很不爽(说国内开发者一毛不拔)这次他就聪明多了,说的很委婉:

很大一部分原因可能是支付渠道的问题

其实就是国内开发者太抠,白嫖惯了,大家都知道这个原因,但你要钱的时候可绝对不能这么说。

往期精彩文章

实战教程:用YOLOv11+PyQt5打造工地安全帽检测系统(附完整数据集) 本文提供了一份完整的实战指南,详细介绍了如何利用YOLOv11目标检测模型与PyQt5界面库,从零开始构建一个智能工地安全帽检测桌面应用。内容涵盖高质量数据集的准备与标注、YOLOv11模型训练与调优,以及如何使用PyQt5开发流畅、专业的图形用户界面,最终实现一个可实际部署的AI安全监控系统。 阅读详情

相关推荐

【Ubuntu】SMBus Host controller not enabled(虚拟机进入不了图形界面)

SMBus Host controller not enabled(虚拟机进入不了图形界面)

Cappuccino Blog 4万+

大前端svelte框架

欢迎学习 Svelte 教程。此教程将会教给你构建快速、轻便的 web 应用程序所需要知道的一切知识。你还可以参考API 文档和实例,或者,如果你现在没有耐心在本地电脑上开始上手 Svelte,可以先看一下这份60秒入门的文章。Svelte 是一个构建 web 应用程序的工具。Svelte 与诸如 React 和 Vue 等 JavaScript 框架类似,都怀揣着一颗让构建交互式用户界面变得更容易的心。但是有一个关键的区别:Svelte 在构建/编译阶段。

mirana的专栏 3215

机器学习——径向基函数(RBF)神经网络

目录 一、什么是基函数 二、什么是径向基函数 三、为什么RBF神经网络使用一个径向基函数作为隐含层的激活函数 四、参数训练 五、RBF网络vs BP网络和 SVM 一、什么是基函数 著名的傅里叶变换是指:n个有参(权值)的正、余弦三角函数基的和式可以等价的表示任意一个周期函数,这里的“基”和我们数学中说的坐标基或向量基含义相同,即坐标空间中任意一个向量都可以用基向量的线性和表示出来。 因此,我们引入函数空间的概念,函数空间中的每个连续函数可以表示为基函数的线性组合,就像向量空间中的每..

CHWB2580的博客 6272

Svelte - Svelte 与传统框架有什么不同?为什么感觉 Svelte 其实才是 Vue3?Svelte 更新机制?

前言 知乎上讨论挺 “疯狂” 的帖子,仅供参考!!! 问题 一个常年用react的人使用vue,第一感觉就是好贴心,好简单,移除了很多概念,轻松。 而现在使用 svelte 重新拥有了这种感觉,而且更强烈。 用了svelte之后,感觉他就是vue的优化版。移除了虚拟dom,放宽了模板编写的一些约束,typescript当前版本的兼容性也很好。 有一种感觉,就是假设vue3不用考虑兼容vue2,那么把svelte改名为vue3就是心目中的vue3版本。 大伙怎么看? 一、你觉得 Svelte 有 Virtua

🏆 前端领域优质创作者 3402

TI AWR1642实战指南:CCS调试mmWave Demo Visualizer全流程解析

本文详细解析了TI AWR1642开发板的CCS调试流程,重点介绍了mmWave Demo Visualizer的使用方法。从环境准备、版本确认到bin文件烧录、CCS工程配置,再到调试启动与结果验证,提供了全流程的实战指南,帮助开发者快速掌握AWR1642的调试技巧,避免常见错误。

weixin_30790841的博客 111

SuperPoint与SuperGlue的C++ TensorRT工程化实战:从理论到部署的完整指南

本文详细介绍了如何将SuperPoint和SuperGlue算法通过C++和TensorRT进行工程化部署,从模型准备、格式转换到TensorRT引擎构建和C++推理实现。通过性能优化技巧和实际应用案例,展示了在边缘设备上实现实时特征匹配的完整流程,显著提升处理速度与效率。

weixin_42537831的博客 161

Svelte与Vue:框架性能与设计理念的比较

Svelte 和 Vue.js 都是现代前端框架,旨在简化 Web 开发并提高应用程序的性能。虽然它们都提供了构建用户界面的工具,但在设计理念、编译过程、运行时开销和性能方面存在显著差异。

天涯学馆 3229

SAP FI模块实操:用F-28和F-32搞定客户回款与手动清账,别再让未清项报表一团糟

本文详细解析了SAP FI模块中F-28和F-32事务代码在客户回款与手动清账中的实操应用,帮助财务人员高效管理未清项报表。通过标准清账六步法和手动清账实战技巧,解决因操作不规范导致的账务混乱问题,提升应收账款管理效率。

weixin_30292843的博客 455

相比Vue和React,Svelte可能更适合你

Svelte 基于用于(本质上,Svelte.js 本身就是一个编译器),允许仅加载在页面上显示应用程序所需的内容——尽可能小的、“可消化的” JavaScript 代码。这意味着没有虚拟 DOM,没有框架之上的框架,也没有运行时的框架。这是 Svelte 和 Vue 之间的主要区别,也是 Svelte 与 React 与 Angular 与 Vue 之战的主要争论点。Svelte 是一个构建 web 应用程序的工具。

Create value with coding 3608

解读文献(五)------基于阻抗控制

文章目录背景主动柔顺控制阻抗控制基于力的阻抗控制基于位置的阻抗控制力位混合控制 背景 主动柔顺控制 阻抗控制 基于力的阻抗控制 基于位置的阻抗控制 力位混合控制 ...

accumulation 1万+

【ADCU详解】PMIC电源管理集成电路详解

自动驾驶域控制器(ADCU)中的电源管理集成电路(PMIC)是高度集成的关键部件,负责为计算核心、传感器等提供高效稳定的多路电源。其核心特点包括:符合车规AEC-Q100标准、支持功能安全ASIL等级、精确的时序控制及强抗干扰能力。PMIC由开关稳压器、LDO、时序控制器、监控保护电路等模块组成,通过分层电源树框架实现电能分配。设计需考虑效率、功率密度、噪声性能等关键维度,底层基于Buck转换器和LDO原理工作。使用中需满足严苛的车规环境要求,并通过静态/动态测试及故障注入测试进行验证,确保系统可靠性和安全

qq_40844444的博客 842

【一文搞定Svelte】超详细的Svelte保姆级上手教程!

Svelte是一种现代的前端框架,它用于构建交互性的用户界面。但它与传统的前端框架不同,Svelte在构建过程中将组件转换为高效的JavaScript代码,而不是在运行时维护虚拟DOM(无虚拟DOM)。这种编译型的方式使得Svelte具有更高的性能和更小的包大小。

有事儿私信。 8464

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之BswM模块配置详解(上)

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之BswM模块配置详解(上)

weixin_42412049的博客 740

Svelte 框架学习与开发文档

针对 SvelteKit 基础的补充

黎陌的博客 971

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Svelte vs React:分析两者特性和优缺点,功能、性能及其他方面的差异

在这篇文章中,我们将讨论目前最大的两个JavaScript框架:Svelte与React。我们将正面比较它们,并列出每个框架的优点和缺点,以帮助你选择其中之一。

WPHunter的编程技术资料库! 2952

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

只要你会vue,5分钟学不会 svelte 你来找我

本文通过和vue语法逐一对比的方式,可以让熟悉vue的同学快速上手svelte~ 虽然现在国内`svelte`不温不火,除了它自身存在的一些问题,主要还是生态不够完善。但是它在国外是非常火的,说不定哪

坚信万物皆可切的切图仔 1220

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Svelte 5 完全指南:从入门到跨端应用开发

Svelte 5 核心指南:现代前端开发新选择 Svelte 5 是前端框架领域的重大创新,它通过编译时优化机制显著提升了性能表现。与传统的虚拟 DOM 框架不同,Svelte 在构建阶段就将组件转换为高效的 DOM 操作指令,减少了运行时开销。2024年底发布的这一版本引入了革命性的符文(Runes)系统,提供了更清晰的响应式编程方式,包括$state、$derived等核心功能。开发者可以快速构建单页应用、静态网站或跨平台应用,Svelte 5在性能测试中显示更新延迟比React低58%,内存占用减少3

Stephen Ling 2213

看完 Svelte 纪录片才知道它为什么在国外比国内火

国外非专业前端的比例比国内大很多,并且他们相对而言更注重交互体验,做炫酷特效的从业者也比我们多得多,侧重点不同导致了他们需要的是精巧的框架,所以在国外Svelte的市场比国内大很多。而且我还在知乎上看到个蛮有意思的回答:总之,看完Svelte纪录片后让我更加期待React纪录片了,只要他们一发布我就会第一时间翻译给大家,敬请期待!

WebAssembly的博客 1029

新兴的前端框架-Svelte

Svelte的核心理念是将复杂性从运行时转移到编译时。这意味着在开发阶段,Svelte会分析组件的声明,并将其转换为最小化的、优化过的JavaScript,这些JavaScript在用户浏览器中运行时具有极高的效率。:Svelte显示了很好的运行时性能。JavaScript数据趋势也显示,这个框架特别适合中小型项目。:Svelte的语法简单明了,可读性强。而且,Svelte应用程序不需要太多的模板。:Svelte架构主要包括Svelte编译器,它负责将.svelte文件转换为.js文件,创建DOM和。

qq_35876316的博客 1231

现代前端开发框架对比:React、Vue 和 Svelte 的选择指南(2025年)

2025年,前端开发领域的技术迭代与AI工具的深度融合,使得开发者面临更复杂的框架选择挑战。React、Vue和Svelte作为当前主流的前端框架,凭借各自的核心理念和技术优势,持续引领行业风向。本文将从性能、开发体验、生态系统、适用场景及未来趋势等维度,深度解析三大框架的差异,并结合2025年的技术演进,为开发者提供科学的选择指南。

weixin_39444768的博客 4409

Svelte框架学习初探

Svelte是一款新颖的前端框架,和Vue、React类似,都是属于MVVM框架。本文从初学者的角度介绍Svelte的特点和如何使用和部署Svelte应用。 Svelte通过静态编译减少框架运行时的代码量,没有虚拟DOM,可以达到接近原生的性能,支持静态编译和Web Component,组件可以在其他框架中使用。Svelte还包含动画、过渡、状态管理等模块。

qq_50101967的博客 1449

Svelte使用心得:在个人项目中表现不错,但在大型企业项目中仍有待观察

点击上方前端Q,关注公众号回复加群,加入前端Q技术交流群作者 | Ty Hopp 译者 | 核子可乐 策划 | Tina 作者用了 1 个月时间开发了一款个人 RSS 阅读器,并选择了 Svelte 和 SvelteKit 作为 Web 客户端的工具。这个选择的主要目的是为了评估这些工具是否适合在大型项目中使用。作者发文分享了对于 Svelte 的一些思考,这篇文章引起了 Hacke...

LuckyWinty的博客 596

前端Svelte框架初体验

Svelte是一个新兴的热门前端框架,作者是RichHarris,被称为前端界的【轮子哥】,有Ractive、Rollup和Buble开源作品。在官方的介绍中,Svelte即是一个前端UI框架,同时也是一个编译器。在《StateofJSsurveyof2020》报告中,它被预测为未来十年可能取代React和Vue等其他框架的新兴技术。在开源托管网站Github上,Svelte也获得了超过61k的关注,这仅次于明星框架React和Vue。...

xiangzhihong8的专栏 4911

01. Svelte 简介

本文章包括 Svelte 的简介,以及与其他框架对比的优缺点

以梦想为帆,行动作桨,驶向辉煌彼岸。 990

Svelte

Svelte 是一种新兴的前端框架,它通过在编译阶段将组件代码转换成高效的 JavaScript 代码,避免了运行时的虚拟 DOM 计算,从而提供更高的性能表现。Svelte 的设计哲学是减少框架运行时的代码量,使得最终的应用程序更加轻量和快速。

1087

Svelte Store与Vuex:轻量级状态管理对比

状态管理是单页应用(SPA)中的一个关键问题,特别是在大型应用中,状态的集中管理可以让状态变得更容易追踪和维护。Svelte 和 Vue.js 都提供了各自的状态管理机制,但它们的设计哲学和实现细节有所不同。Svelte 的状态管理是内置于框架之中的,它提供了一个叫做“store”的API,用于在组件之间共享状态。在现代前端框架中,状态管理是一个重要的组成部分,它有助于组织和维护应用程序的状态。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

天涯学馆 1392
上一篇: 这个组件开发神器你一定要知道:用它开发出来的组件能够横跨各种端
「已注销」
博客等级 码龄5年 0粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值