为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript框架:展望2025年的挑战与变化

我老实说,我不确定今年是否会写这篇文章。写一些能让人们对新技术充满期待的文章很容易。但2024年更多的是面对现实。

过去的几年里,我们一直在探索未知。我们满怀激动地迎来了这一年,终于到了让这些进步更上一层楼的时候了。它们确实变得更好了。但有一件事很清楚:

追求简洁并没有让网页开发变得更容易。

显然,有些事确实变得更容易了,但整体情况并没有因此变得简单。这一点我们早有预料。但2024年发生了一些变化,部分原因是全球经济压力加大,迫使各国紧缩预算,坚持安全稳妥的方案。我认为,人们终于承认没有一蹴而就的解决方案。困难的问题需要艰苦的努力才能解决,这已经成为了共识。

不仅工具复杂,问题也一样棘手。每走一步都遇到障碍,回到基础却发现只能重新发明轮子,最终回到了那个根本的起点。

这确实是一个让人清醒的想法,不过这也让我对2025年抱有希望,我们可以抽时间重新评估一下。这从回顾2024年开始。

空白(原文为: *)

服务器的承诺故事

图片 - 描述: 图片描述

‘服务器优先’的设计理念一直是过去五年来前端开发领域的叙述。这并不是一个新概念,网络诞生之初是以服务器为基础的,但随着十年客户端为中心的单页应用的发展后,显然这种趋势已经过头了。特别是对于对页面加载速度敏感的网站,这些网站并没有从增强的交互性中获得太多好处。

疫情进一步加剧了这种情况,伴随着在线购物习惯的增长以及低利率带来的资本涌入。结果,我们有了许多新的服务器端元框架,例如 SvelteKit、Astro、Remix、SolidStart、Qwik、Fresh 和 Analog,同时,Next 和 Nuxt 等现有框架也得到了显著升级。

过去的几年里,受SPA(单页应用)影响的同源(同一代码在客户端和服务器上以不同方式执行)方法与受MPA(多页应用)影响的分执行(岛屿组件和服务器组件)方法相互竞争,试图寻找适用于所有情况的通用解决方案。这带来了路由技术上的惊人进展,例如Next App Router和View Transitions Routing,以及像服务器功能、乐观的数据更新策略、服务器岛屿和单次飞行突变这样的技术。然而,这种差距仍然超出了任何人的预期。

当你把这些特性整合在一起时,事情就变得不再那么简单了。我们当初想要解决的问题是否真的解决了,也值得讨论。

衡量成功的难度一直非常高,我们还目睹了基准的失败。

我们曾看到性能问题被归咎于新技术,但实际上真正的原因可能并非如此。

不想陷入这种混乱,将讨论带回了更传统的服务器方法。那些不采用“SSR”的方法。不在服务器上运行客户端 JavaScript 框架的方法。这在合适的情况下一直是个不错的选择。但这确实有点无聊。

如果没有对过去改进的需求,我们就不会达到现在的境地。而这通常需要经过很多尝试和错误。最适合的工具才是正确的答案,但当问题变得不再简单时,你就需要一些能随着你一起成长的选择,而不是局限的选择。

如果2021/22是对更简单基础的重置,是对我们最初在服务器上的状态的回归,2024则提醒我们,简单并不总能解决问题。


编译解救

图片描述(此处为图片描述)

编译过程是 JavaScript 开发中一个不可或缺的部分。每当遇到问题,无论是浏览器功能的支持不足、复杂的语法特性,还是解决语言的不足,我们都会开发相应的编译器来解决这些问题。

现在它无处不在,标准委员会正在考虑朝着这个方向引入新功能。编译和扩展捆绑是现代 JavaScript 应用程序的核心,同时也是导致 JavaScript 工具复杂性的主要原因。

好处巨大。类型、代码检查、Treeshaking(树摇)、Code Splitting、Minification、Isomorphism、Macros、DSLs、单体编写/分布式部署。过去15年在这个领域中的每一项进步都是建立在这一基础之上的。没有任何一种替代方案能勉强与其相比。也可以说是JavaScript语言的局限性,也可以说是必要的复杂性。但否认这一点是没用的。

然而,如果我们真的想理解复杂性,至少应该先弄清楚它的源头。2024年最有趣的变化,很大程度上是因为React编译器的发布和Svelte 5符文的推出,使得讨论变得多么混乱。

一边是 React 编译器,这是一个自动优化的编译器,它可以将代码转换为减少不必要的重新执行的形式,而无需手动干预。在原则上与 2019 年发布的 Svelte 3 编译器非常相似。另一边是 Svelte 5 Runes,它为细粒度的 Signals 渲染器上提供了一种语法糖,类似于 2018 年发布的 SolidJS。

这两个编译器项目完全不同,它们都对各自项目的基本性质提出了质疑。React 认为重新渲染非常重要,因此需要进行优化。Svelte 则放弃了其极简的语法,转而采用一个更强大且性能更好的语言。讽刺的是,这两种立场都与它们最初的卖点完全相反。

更有趣的是,这两种选择都让工具变得更复杂了,相比他们现有的方法。

这些举措最终是否对这些项目有利尚未定论。共同的基础是我们正在建立的根基随着我们试图创造解决方案而变得越来越复杂,以使开发更简单。


AI 和开发工具:探索新可能

如果编译和打包确实很重要的话,现在这一点已经很明确了,这些是使AI能够拥有创造动态解决方案所需工具的基础。虽然我们看到这些工具每年都在改善我们的本地开发体验方面的影响越来越大,但AI对JavaScript框架本身的影响仍然很小,这一点还不是很明显。

年初的时候,我们看到德文(Devin)因为开发了一些简单的应用程序而上了新闻头条。这却引发了我们对这项技术期望的思考。这样的应用是否足够实用,还是说它还需要更好一些?

从这个角度来看,像 Vercel 的 v0 这样的技术产品在创建原型方面已经取得很大成功。也许现在最大的好处就是在这里。

百万JS开发者白艾登再次吸引了我们的注意,这次是因为他开发的React Scan,这个工具可以扫描你的应用以查找性能问题。

虽然有人可能会说重新渲染并不一定意味着有问题,或者认为在React中寻找重新渲染的过程非常简单,就像捡起来的落水鱼一样容易,但这确实让我意识到即将到来的开发工具可能带来的帮助。

如果任务变得复杂,而核心工具也更复杂,那么相应的支持工具就会随之变得重要起来。这不仅仅是在开发中的“左移”(即开发过程中的早期介入),而是整个流程都需要全方位考虑。需求需要在整个开发过程中全面整合。尽管 Biome(及其前身 Rome)力求实现这一目标,领域内的新参与者,如 Evan You(Vue 和 Vite 的创造者)推出的 VoidZero,表明这一基础对于接下来的发展至关重要。


展望未来

服务器秒级

我们已经开始看到2024年中钟摆效应的反弹,体现在Sveltekit、SolidStart和Remix中的SPA模式上。Remix将部分非服务器功能重新整合回React Router。SolidStart通过增加服务器功能和单次飞行突变来扩展其功能,这些方法最终成为了构建Tanstack Start(一个基于相同原则的React框架)的基础。

我们也看到了本地优先和同步引擎技术的增加。这种技术的具体表现形式还有待观察,但我认为这将继续成为趋势直到2025年。

慢而稳,终能胜

图片描述

今年在查看JavaScript调查的结果时,我发现令人注意的一点是在我们对工具日益增长的不满中,一些工具的积极增长超过了其他工具。这与例如留存率(满意度)不同,后者更侧重于当前使用该工具的用户,并且更倾向于小型玩家。多年来,SolidJS和Svelte一直位居该榜单的榜首。

它们并不是我讨论得最多的工具,但在经济紧张且维护成为关注点时,它们往往表现出色。无论是 Vue 还是 Angular,我今年都会密切关注这两个框架。不是因为我期待在这里看到什么特别的创新,而是因为这些工具在让开发者感到更满意方面做得更多。有时候,最好的工具并不是表面上最好的工具。

信号成长的困扰

图片: 图片

这已经不是什么秘密了,几乎所有的非 React 框架现在都采用了信号(Signals)机制。但是时间已经过去,开发者们开始理解这些权衡的深层含义。尽管这是作者带有偏见的观点,认为这些问题微不足道,但我也希望人们能对 React 产生新的认识。这种认识本应一直存在,但这并不能为 React 的缺陷辩解。但一切都是折中,只有理解了两面,你才能认同自己的选择。

尽管如此,信号仍然在发展。在这一领域,集体经验近年来有了显著的增长。我预计,接下来的一年内,这些较小的创新成果将展示这种方法的独特价值,以前我们从未见过的方式。

Web 组件(网页上的小部件)

...开玩笑


结论

与往年不同,我并不预测在未来一年内会有大的技术飞跃。我不确定大家是否愿意接受。我目睹了讨论从Resumability是否有意义 vs 部分hydration是否合理,退回到了谁的模板语法更好的讨论。这是周期的一部分,让人反思并期待未来的创新。但不是今天。而这种情况也是可以理解的。

我们有很多需要追赶的复杂性。需要做出很多艰难的决定,关于哪些技术值得我们投资和努力。下一代解决方案所需的基本能力已经具备,但我不确定我们是否已经看到了以一种易于接受的形式呈现的正确组合。但至少我们已经开始承认,在我们追求简单的道路上,我们走上了以新方式重新增加复杂性的路。

还没有出现一种单一的解决方案。HTMX 不会统治世界,但它确实是一个不错的选择。React 并不比其他解决方案更难使用。异步和客户端/服务器之间的交互本身就是一件复杂的事情。编译器无法解决所有问题,但它们确实能做很多事情:

我们生活在一个复杂的世界里,这种情况看来短期内不会有什么改变。所以2025年感觉像是好好干一番的一年。

而且,对于那些寻找下一个伟大事物的人来说?看看四周。这里有很多有趣的难题等待解决。私下里说,这种环境正好是我的菜。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消