THENEWSTACK 采访了 Angular、Next.js、React 和 Solid 的维护者和创建者们对 2024 对前端预测及功能改进。
原文链接:https://thenewstack.io/2024-predictions-by-javascript-frontend-framework-maintainers/
2024 年的前端会有怎样的发展呢?尽管无法预知未来,但我们与Angular、Next.js、React 和 Solid 的创作者和维护人员进行了对话,了解他们在 2024 年的计划。以下是前端开发者在接下来的一年中可以期待的概览。
Angular: 可选的 Zone.jsAngular 技术负责人兼 Google Angular DevRel 的经理 Minko Gechev 表示,在过去的一年里,Angular 取得了两个重要的成就,即引入了细粒度的反应性(Signals)和可延迟的视图(deferrable views)。他表示,接下来的一年将进一步专注于细粒度的反应性,并将 Zone.js 作为可选项。在 Angular 中,Zone 是一个跨异步任务持续存在的执行上下文。Zone.js 在这个 GitHub 存储库中有详细的解释,但一个 Zone 有五个职责,包括拦截异步任务调度、包装回调用于错误处理和跟踪异步操作的 Zone。Zone.js 可以创建在异步操作中持续存在的上下文,并为异步操作提供生命周期钩子。Gechev 说:“我们正在探索为现有项目启用可选的 Zone.js,开发人员只需对现有应用进行重构,就能利用这个功能。通过可选的 Zone.js,我们预计能够改善加载时间并实现更快的初始渲染。通过细粒度的反应性工作,我们可以将其提升到另一个层次,仅检测组件模板中的部分变化。”他表示,这些特性将带来更快的运行时体验。在另一个性能方面,Angular 正在考虑是否默认启用混合渲染。尽管可以选择退出混合渲染,因为它可能增加主机要求和成本,他补充说。Gechev 也提到:“我们看到了 SSG(静态站点生成)和SSR(服务器端渲染)的很多价值,并且在 v17 中打下了坚实的基础,正在进行最后的修饰工作,以从一开始就实现这种体验。”另一个优先事项是履行 Signal Request for Comments(RFC)计划。开发者可能还会看到 Angular 文档的改进。根据开发者调查,Gechev 表示开发者希望获得升级的学习体验,其中包括将 Angular.dev 作为该框架的新家。开发者还将初始加载时间(混合渲染、部分水合和可选的 Zone.js 部分应该能够解决这个问题)和组件编写放在首要位置,Angular 计划进一步简化这些过程。Gechev说:“我们致力于迭代地提供功能,并随着时间的推移逐步增强它们。开发者将能够从 2024 年所有的改进中受益,并在接下来的年份中获得更好的开发者体验和性能。” Next.js:正在开发新的编译器Next.js 在 2023 年引入了一个新的应用服务器,旨在支持 React Server Components(RSC)和 Server Actions。Lee Robinson 是负责该框架的 Vercel 产品负责人,他表示 Next.js 仍然支持旧的应用服务器,并且它们的路由系统可以互换使用。这种互操作性意味着开发者可以花费一些时间来添加新的功能。Robinson 说:“有些客户已经使用 Next.js 构建五六年,他们对这些新功能的采用也需要多年的时间。我们希望尽可能顺利地带领大家一起前进。”在新的一年里,Next.js 希望解决许多问题,但其中一个优先事项可能是简化缓存。"通常情况下,生态系统中的许多开发者不得不引入一堆额外的包或学习如何使用其他工具来进行获取、缓存和重新验证操作," Robinson 说道。"Next.js 现在已经内置了许多这些功能,这非常强大,但也意味着你需要学习一些额外的东西,初步的反馈是:'这很棒,非常强大,但我们希望它能更容易一些。'"Next.js 团队还将继续专注于性能改进,对此他称之为“我们的持续投入”。他补充说,这可能以新的编译器的形式出现在新的一年里,该编译器将加快在开发者的机器上启动 Next.js 的速度。这个编译器已经在开发约一年时间,Vercel 在其属性和应用程序中内部使用了它。这个由 Rust 驱动的编译器在没有缓存的情况下比之前的编译器更快。“我们离推出这个功能已经非常接近了,到了每个人都可以默认开启的程度,而且它比现有的使用 Webpack 进行编译的解决方案更快,”Robinson 说道。“开发者希望他们的工具更快。他们不会对速度更快而抱怨。因此,看到工具开发者们转向这些更底层的工具,比如 Rust,来帮助获得更高性能的收益,这是很有意思的。”第三个目标是继续为未来 10 年的 Next.js 构建基础设施。Next.js 团队表示非常兴奋,“我们相信这个新的路由系统是未来的基础。”“然而,这需要时间。人们会尝试使用它,他们会提出功能请求,并期望看到一些变化。我们将其视为对未来五到十年的长期投资。”他们补充说,处理 Next.js 内部内容的方式是他们“将来某一天”的目标,但可能不会在今年实现。“目前,它可以正常工作,并且你仍然可以连接到任何你想要的内容源,但可能存在简化开发者体验的方法,”Robinson 补充道。“这更多是一种美好的愿景,而不是迫切要求。这也是为什么我们认为在 2024 年不会实现它,但我们希望将来能够对其进行改进。” React: 2024 预览“React 团队预计在新的一年会有更多的框架采用 React Server Components,”Meta 的 React 工程经理 Eli White 表示。"对于大多数人来说,RSCs 对 React 的范围产生了重大变化,从仅仅是一个 UI 层到对你如何构建应用程序的方式产生更大的影响,特别是对于那些 SPA(单页面应用)不够好的应用程序,以实现最佳的用户和开发者体验," White 说道。虽然 Eli White 没有具体说明 2024 年有哪些新发展,但他表示将在 2023 年的新进展方面进行更多的发布和分享。例如,在 React Advanced 大会上,团队向与会者展示了React Forget,这是 React 的自动记忆编译器。React Forget 将意味着开发者不再需要使用 useMemo 和 useCallback,White 说道。"在 React Native EU 大会上,我们将 Web 开发者熟悉的 Chrome 开发工具引入 React Native,从 0.73 版本开始,"“React 团队预计在新的一年会有更多的框架采用 React Server Components,”Meta 的 React 工程经理 Eli White 表示。"对于大多数人来说,RSCs 对 React 的范围产生了重大变化,从仅仅是一个 UI 层到对你如何构建应用程序的方式产生更大的影响,特别是对于那些 SPA(单页面应用)不够好的应用程序,以实现最佳的用户和开发者体验," White 说道。"我们还首次展示了我们对 Static Hermes 的研究成果,这是我们为 JavaScript 开发的本地编译器,它不仅有可能加速 React Native 应用程序,还可能从根本上改变 JavaScript 的有效使用方式。 Solid:专注于基础部件根据 Solid 的创建者 Ryan Carniato 的说法,Solid 会在今年推出 SolidStart 1.0 和 Solid.js 2.0。SolidStart 是建立在 Solid.js 框架之上的一个元框架,类似于 Svelte 的 SvelteKit。SolidStart 的文档这样解释:"Web 应用程序通常由许多组件组成,例如数据库、服务器、前端、打包工具、数据获取/变更、缓存和基础设施。协调这些组件是具有挑战性的,通常需要在整个应用程序堆栈中共享大量状态和编写冗余逻辑。SolidStart 的目的是提供一个平台,将所有这些组件集成到一个地方。"由于 SolidStart 仍处于测试阶段,Carniato 有机会利用现有的生态系统资源来改进它。"其中一个重要的方面是,我们不再编写自己的部署适配器,而是使用 Nitro。Nitro 还支持 Nuxt 框架,这意味着开发者可以将应用程序部署到各种不同的平台上," Carniato 解释道。另一个例子是任何 Solid 路由器都可以在 SolidStart 中使用。"这意味着对路由器的底层部分进行了许多更新,以便它们可以相互配合工作,但最终的结果让我非常满意的是,我们小团队的维护代码大大减少,并且为开发者提供了很多灵活性和控制权," 他说道。“开发者不用被迫采用单一的解决方案,这对我来说非常重要,因为每个人都有自己的需求。正如我所说,如果构建正确的组件并找出这些构建块是什么,人们可以做更多的事情。”他说,最终的结果是一个“可互换”部件的元框架,并不过于固执己见。Solid 团队一直在思考在一个越来越多元框架决定开发者使用什么的世界中,正确的基本部件对于影响的重要性。对我来说,一直以来都是关于构建基本部件,非常注重工程方面的东西,我认为这也是它与众不同的部分原因之一," 他说道。“我一直喜欢给予选择,我认为如果你拥有正确的基本部件、正确的组件,你就可以构建出正确的解决方案。”Solid 2.0 预计将在 2024 年中期或晚期发布。目前,他们正在设计原型,看它如何处理异步系统。"Solid 2.0 也将是一个非常重要的发布版本,因为我们再次审视了响应式系统,并研究如何处理异步信号或异步系统," Carniato 说道。“Solid 试图在控制和性能之间取得平衡。”"我们社区中有很多非常热情的人,非常注重技术的人,他们关心性能,关心控制," 他说道。“我们吸引了很多真正希望对他们构建的每个部分都有控制权的人。”推荐阅读: