JavaScript 前端框架维护者对 2024 年的预测

本文最初发表于The New Stack网站,由 InfoQ 中文站翻译分享。

在 2024 年,前端领域会有怎样的发展呢?因为没有人能够预见未来,所以 The New Stack 与来自 Angular、Next.js、React 和 Solid 的创建者和维护者讨论了他们 2024 年的计划。以下是前端开发者对未来一年的展望。

Angular:可选的 Zone.js

来自谷歌的 Angular DevRel 技术主管和经理Minko Gechev说,在过去的一年里,Angular 的两大成就是引入了基于Signals的细粒度反应性和可延迟视图。他告诉 The NewStack,新的一年将会在此基础上进一步关注细粒度的反应性,并使 Zone.js 成为可选的。

在 Angular 中,Zone 是一个执行上下文,它能够跨异步任务持续存在。在这个GitHub仓库中详细介绍了Zone,它有五个职责,包括拦截异步任务调度和包装回调以便于进行错误处理,以及跨异步操作的 zone 跟踪。Zone.js 可以创建跨异步操作而持久化存在的上下文,也可以为异步操作提供生命周期钩子。

Gechev 说,“我们正在探索为现有的项目实现可选的 Zone.js,开发人员可以通过重构现有的应用程序来利用这一特性”。“借助可选的 Zone.js,我们期待加载时间能够得以改善,并实现更快的初始渲染。对细粒度反应式的处理将提升到一个新的层次,使我们能够仅探测组件模板的部分变更。”

他说,这些特性将会带来更快的运行时。

在关于性能的另一个方面,Angular 正在考虑是否默认启用混合渲染。他补充说,选择避免混合渲染是可能实现的,因为这会增加托管需求和成本。

Gechev 说,“我们看到了 SSG(静态站点生成,static site generation)和 SSR(服务器端渲染,server-side rendering)的很多价值,而且在 v17 中奠定了坚实的基础,我们正在进行最后的润色工作,以便从一开始就实现这种体验。”

他补充到,另一个优先事项是完成Signals请求的评论(Request for Comment)。

开发人员还可以看到 Angular 文档的改进。根据对开发人员的调查,他们希望能有一个升级的学习体验,其中包括让 Angular.dev 成为该框架新的托管地。他补充说,开发人员还优先考虑了初始加载时间(混合渲染、部分填充和可选的 Zone.js 应该可以部分解决该问题)和组件编写,Angular 计划会进一步简化组件的编写。

Gechev 说,“我们致力于迭代式地交付特性,并随着时间的推移逐步增强它们”。“开发人员将能够从 2024 年的所有改进中受益,并在接下来的几年里获得更好的开发体验和性能。”

Next.js:新的编译器

Next.js 在 2023 年引入了一个新的应用服务器,旨在支持 React 服务器组件(React Server Component,RSC)和Server Action。Vercel(该框架的监管者)的产品负责人 Lee Robinson 说,该框架会继续支持旧的服务器,并且其路由系统可以在两者实现互操作性。这种互操作性意味着可以继续花时间添加新的特性。

Robinson 说,“有些客户已经使用 Next.js 进行开发有五六年之久了,他们也会需要花费几年的时间来采用这些新特性。在这个过程中,我们希望他们的工作能够尽可能地顺畅。”

在新的一年中,Next.js 希望要解决很多问题,其中一个优先事项就是简化缓存。他说,从开发人员的体验来看,这可能会使其更加容易。

Robinson 说到,“通常情况下,生态系统中的许多开发人员必须引入一堆额外的包,或者学习如何使用其他的工具来进行数据抓取、缓存和重现校验”。“现在,Next.js 已经构建了很多这样的特性,而且非常强大,但是这也意味着需要学习更多的东西,我们得到的初步反馈是,‘这非常棒,也很强大,但是我们希望它能更简单一些’”。

Next.js 团队还将继续关注性能的改进,他将其称之为“我们的持续投资”。

他补充到,在新的一年里,这很可能会以新编译器的形式出现,它将加快在开发人员的机器上启动 Next.js 的速度。该编译器相关的工作已经进行了大约一年的时间,Vercel 一直在其内部产品和应用中使用它。他说,这个使用 Rust 编写的编译器即便在没有使用的缓存的情况下也比之前启用缓存的编译器更快。

Robinson 说,“距离推出这个功能已经近在咫尺了,甚至到了每个人都可以默认启用它的程度,而且它比现有基于 Webpack 的编译方案更快”。“开发人员总是希望他们的工具能够更快。他们对工具运行速度的追求永无止境。因此,很有意思的一件事是,工具的制造商,而不是工具的使用者在开始转向像 Rust 这样的底层工具,从而帮他们实现性能方面的最终胜利。”

他们的第三个目标是为未来十年的 Next.js 奠定基础。

他说,“我们对这个新的路由系统感到非常兴奋。我们相信这是未来的基础。但是,这也需要时间。人们会尝试使用,从而有特性方面的需求,并且希望能够看到实际的改变。我们将其视为未来五年至十年的长期投资。”

他补充说,一个“某天”可能会实现的目标是在 Next.js 中找到更好方式来处理内容,不过这应该不会新的一年中实现。

他补充说,“现在,它依然能够正常运行,你依然可以连接到任何你想要的内容源,但是会有一些潜在的方式能够简化开发人员的体验”。“这更像是一件锦上添花的事情,而不是必须要做的事情,这就是为什么我认为在 2024 年我们不会实现它,但我希望未来会为其做一些相关的工作。”

React:2024 预览

Meta 的 React 工程主管 Eli White 说,React 团队希望在新的一年里会有更多的框架采用 React 服务器组件(RSC,React Server Component)。

White 说,“对大多数人来讲,他们认为 RSC 是 React 领域的重要变化,从一个单纯的 UI 层,变成对如何架构应用程序的方式都能产生更大的影响,以获得最佳的用户和开发人员体验,特别是对于单页应用程序(SPA,single page application)方式表现不够好的应用程序。”

虽然他没有明确说明 2024 年的新动向,但是 White 表示他们将发布和分享 2023 年相关事项的更多进展。比如,在 React Advanced 会议上,团队向与会者展示了 React Forget,这是 React 的自动记忆编译器。White 说,有了React Forget之后,将意味着开发者不再需要使用useMemo和useCallback

White 补充说,“在 React Native EU 会议上,我们分享了从 0.73 版本开始将 web 开发人员熟悉的 Chrome 开发工具引入 React Native。我们还初步展示了对 Static Hermes 的研究成果,这是针对 JavaScript 的原生编译器,它不仅有可能加快 React Native 应用程序的速度,而且会从根本上改变 JavaScript 的用途。”

Solid:专注于基本元素(Primitive)

Solid 创始人 Ryan Carniato 表示,在 2024 年,Solid 开发人员可以期待即将推出的SolidStart 1.0和 Solid.js 2.0。SolidStart 是一个元框架,这意味着它建立在框架 Solid.js 之上。他说,这类似于Svelte的SvelteKit

SolidStart的文档是这样描述的:

“Web 应用程序通常包含很多组件,比如数据库、服务器、前端、打包器、数据抓取/变更、缓存和基础设施。编排这些组件很具挑战性,并且通常需要跨应用程序技术栈共享大量的状态和冗余逻辑。这就是 SolidStart 的用武之地,它是一个元框架,提供了一个将所有这些组件组合在一起的平台。”

由于 SolidStart 仍处于 beta 阶段,Carniato 有机会利用生态系统中已有的东西将其变得更好。

Carniato 说,“其中很重要的一点是,我们现在不再需要编写自己的部署适配器,而是可以使用 Nitro,它也支撑了 Nuxt 框架,这使得我们可以将其部署到所有的不同平台上。”

另外一个样例是任何 Solid 路由器都能在 SolidStart 中运行。

他说,“这意味着对路由器的底层部分进行了大量更新,这样它们才能一起运行,但最终结果令我非常高兴,因为我们小团队的志愿者需要维护的代码量要少得多,这给了开发人员很大的灵活性。”“他们不必被迫采用单一的解决方案,这对我来说非常重要,因为每个人都有自己的需求。正如我所言,如果你构建了正确的组件并且能够弄清楚构建基块(building block),那么人们可以做更多的事情。”

他说,最终的结果是由“可互换”的组件所组成的元框架,而不是具有很强的倾向性。Solid 团队一直在思考,在由越来越多的元框架决定开发人员能够使用什么的世界中,正确的基本元素所带来的影响。

他说,“对我来讲,最重要的一直是基本元素形成的构建基块,这是一个非常工程化的关注点,我认为这也是它与众不同的原因之一。”“我一直喜欢给别人选择的权力,并且我认为如果有正确的基本元素,正确的构建基块,就可以构建出正确的解决方案。”

他表示,Solid 2.0 应该会在 2024 年中后期发布。现在,他们正在实现如何处理异步系统的原型。

Carniato 说,“Solid 2.0 也将是一个非常重要的版本,因为我们正在重新审视反应式系统,并思考如何解决异步信号或异步系统的问题。”

他补充说,Solid 试图在控制和性能之间取得平衡。

他说,“在我们的社区里,有很多非常热情的人,非常有技术头脑的人,他们关注性能,关心控制。”“我们确实吸引了很多人,他们真的想控制自己建造的每一个组成部分。”

原文链接:

https://thenewstack.io/2024-predictions-by-javascript-frontend-framework-maintainers/


InfoQ 为大家在前端学习的道路上准备了一份厚礼!扫码免费领取~


本文文字及图片出自 InfoQ

余下全文(1/3)
分享这篇文章:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注