SOLIDJS创建者谈WEB框架复杂性

SOLIDJS创建者谈WEB框架复杂性
2025年01月17日 16:07 云云众生s

Ryan Carniato,SolidJS 和 SolidStart 的创建者,表示 Angular 和 Vue 将是 2025 年值得关注的 JavaScript 框架。

译自SolidJS Creator on Confronting Web Framework Complexity,作者 Loraine Lawson。

前端专家、Solid.js 创建者近日预测,Angular 和 Vue 将是今年值得关注的框架。

在 1 月 6 日的一篇博客文章中Carniato 写道:“Vue 和 Angular 是我明年会关注的框架。这并非因为我期待它们带来什么惊人的创新,而是因为这些工具在让开发者感到满意方面做得更出色。有时候,最好的工具并非‘最佳’工具。”

事实上,Google 的产品和开发者关系负责人最近宣布,提升开发者体验将是 Angular 2025 年的重点

如果您不熟悉 Carniato,他是SolidJS 框架和 2024 年推出的元框架SolidStart的创建者。

像许多框架作者一样,他也是 JavaScript 领域的思想领袖——这一荣誉称号源于他对 JavaScript 的深入演讲和写作。他经常被其他框架创建者和 JavaScript 行业的领导者引用。

Carniato 预计前端框架领域将会是平静的一年——这段反思期可能是一件好事,因为社区正在努力应对其自身创造的复杂性。

Carniato 写道:“追求简洁并没有让 Web 开发变得更简单。我们有很多复杂性需要解决。我们需要做出许多艰难的决定,来判断哪些技术值得我们投资和付出努力。”

虽然“下一代解决方案的原始能力已经存在”,但 Carniato 不确定是否已经找到了合适的组合来创建一个“易于使用的”解决方案。

他写道:“但至少我们开始承认,在我们追求简洁的过程中,我们走上了一条以新的方式增加复杂性的道路。”

在他的博客文章和最近的五小时直播(我们观看了其中两小时)中,他解释了一些造成复杂性的原因。

同构 SPA 与 分离执行 MPA

据 Carniato 称,JavaScript 中出现了一种分歧,即使用分离执行的多页面应用程序(例如 Astro 中的Islands或服务器组件)和本质上是同构的服务器优先单页面应用程序 (SPA)。

Ryan Carniato 在最近的一次直播中分享了一张关于同构框架和分离执行框架之间差异的幻灯片。

同构 JavaScript 或通用 JavaScript 涉及使用可以在浏览器(客户端)和服务器端运行的 JavaScript 代码编写应用程序。

根据Sanity.io 的词汇表,“使用同构 JavaScript,服务器会生成网页的初始视图并将其几乎立即发送到客户端进行渲染,同时在后台下载完整的应用程序。”“这种方法减少了服务器负载,并通过加快页面加载速度来显著提升用户体验。”

采用同构方法的框架包括Next.jsNuxtSveltekit

Sanity.io 解释说,它们允许开发者“优化 Web 应用程序性能,同时保持跨不同环境的兼容性”。使用同构 JavaScript 完成大型项目的公司包括 Airbnb、Facebook 和 Netflix。

依赖分离执行的框架包括AstroFreshNext.js 的 App 目录。 过去五年中,对服务器优先的追求导致了服务器优先元框架的兴起,特别是SelveKit、Astro、RemixSolidStartQwik、Fresh和Analog,Carniato写道。他还补充说,这也导致了“对Next和Nuxt等现有框架的重大升级”。

“这是一种尝试在中间相互接近的两个对立面的练习。”

——Ryan Carniato,JavaScript框架SolidJS的创建者

“过去几年中,受SPA影响的同构(相同的代码在客户端/服务器端运行方式不同)方法与受MPA影响的分裂执行(Islands/服务器组件)方法对抗,以寻求一种通用的解决方案,”Carniato写道。“这是一种尝试在中间相互接近的两个对立面的练习。”

这导致了路由例如Next App Router的开发和视图转换路由,他写道。他还提到了其他发展,例如乱序流、服务器函数、乐观更新、服务器岛和单次飞行突变。

但这同时也带来了复杂性。

“当你组合所有这些功能时,事情就不那么简单了,”他写道。“如果2021/22年是对更简单基础的重置,是对我们服务器端起源的回归,那么2024年提醒我们,简单并不总是足够的。”

通过编译器处理复杂性

他补充说,框架处理这种复杂性的一种方法是使用编译器。2024年,开发人员看到了React编译器Svelte 5 Runes的发布。React编译器是一个“自动优化编译器,它以减少不必要的重新执行而无需手动干预的方式转换代码,”他指出。

另一方面,Svelte 5 Runes“在细粒度的Signals渲染器上提供语法糖,”他写道。简单来说,signals通过充当反应式变量来管理应用程序状态——当它们的值发生变化时,它们会自动更新任何依赖它们的UI部分。

他补充说,这些编译器采用了截然不同的方法。

“React承认重新渲染确实很重要,需要围绕它进行优化,”他说。“Svelte放弃了其最小的语法,转而使用更具表现力的语言,具有增强的功能和更好的性能基础。具有讽刺意味的是,这些立场都与其最初的卖点完全相反。”

前端框架预测

鉴于所有这些,Carniato对2025年的发展做出了两个预测:

  • 服务器第二种方法。“我们已经开始看到2024年中期钟摆向中间摆动的一些迹象,Sveltekit、SolidStart和Remix中都出现了SPA模式。Remix将其非服务器功能移植回React Router,”他写道。“SolidStart对服务器函数和单次飞行突变的增量方法为TanStack Start奠定了最终的基础,这是一个基于相同原则构建的React框架。”
  • 成长的烦恼“毫无疑问,几乎所有非React框架现在都使用Signals,”他写道。“但一段时间过去了,开发人员开始了解其中存在的权衡取舍的深度。”虽然他认为这些问题很小,但他表示它们可能会导致人们对React产生新的尊重。Signals

本文在云云众生https://yylives.cc/)首发,欢迎大家访问。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部