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

来自Angular、Next.js、React和Solid的维护者和创建者分享了他们计划在2024年进行的改进

2024年的前端会是什么样子?自从我们打破了我们的水晶球,The New Stack与Angular,Next.js,React和Solid的创建者和维护者讨论了他们2024年的计划。下面是前端开发人员在未来一年可以期待的概述

Angular:可选Zone.js

在过去的一年里,Angular的两大成就是引入了细粒度的信号反应和可延迟的视图 ,谷歌Angular DevRel的技术负责人兼经理Minko Gechev说。明年将在此基础上进一步关注细粒度的反应性,并使Zone.js成为可选的,他告诉NewStack。

在Angular中,Zone是一个跨跨Java任务持久化的执行上下文。在这个GitHub存储库中详细解释了区域,但是区域有五个职责,包括拦截异步任务调度和包装用于错误处理的回调,以及跨GitHub操作的区域跟踪。Zone.js可以创建跨异步操作持久化的上下文,并为异步操作提供生命周期钩子。

"我们正在探索为现有项目启用可选的Zone.js,开发人员应该能够通过重构现有应用程序来利用该功能,"Gechev说。"使用可选的Zone.js,我们期待加载时间的改善和更快的初始渲染。研究细粒度的反应性将这一点提升到另一个层次,使我们能够检测组件模板的部分变化。

他说,这些功能将导致更快的运行速度。

在另一个性能测试中,Angular正在考虑是否默认启用混合渲染。他补充说,可以选择退出混合渲染,因为它会增加托管要求和成本

他补充说,另一个优先事项是提供其征求意见的信号

开发人员也可以看到Angular文档的改进。根据其开发人员调查,Gechev开发人员希望获得升级的学习体验,其中一部分包括将Angular.dev作为框架的新家。开发人员还优先考虑了初始加载时间-混合渲染,部分水化和可选的Zone.js部分应该解决的问题,他补充说-以及组件创作,Angular计划进一步简化。

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

Next.js:一个正在工作的新的编译器

Next.js在2023年推出了一个新的应用服务器,旨在支持React服务器组件(RSC)和服务器操作。它继续支持旧的应用程序服务器和他们的路由系统是可互换的,说李罗宾逊,产品负责人在Vercel,负责监督框架。这种互操作性意味着开发人员可以花时间添加新功能。

罗宾逊说:"有些客户已经用Next.js开发了五六年,他们采用这些新功能也需要好几年的时间。""我们喜欢带人沿着,尽可能顺利地旅行。"

在新的一年里,Next.js想要解决的问题有很多,但其中一个优先事项可能是简化缓存。他说,就开发人员的经验而言,这可能会更容易。

罗宾逊说:"通常情况下,生态系统中的许多开发人员不得不引入一堆额外的软件包,或者学习如何使用其他工具来进行抓取、缓存和重新验证。""Next.js现在已经建立了很多功能,这非常强大,但这也意味着你需要学习更多的东西,最初的反馈是,'这很棒;它非常强大,但我们希望它更容易一点。

Next.js团队还将继续专注于性能改进,他称之为"对我们的持续投资"。

他补充说,这可能会在新的一年里以新的编译器的形式出现,这将加快在开发人员的机器上启动Next.js的速度。该编译器已经开发了大约一年,Vercel一直在内部使用它的属性和应用程序。他说,由Rust驱动的编译器在没有缓存的情况下比以前的编译器更快。

罗宾逊说:"我们真的很接近推出这一点,每个人都可以在默认情况下打开它,它比现有的Webpack编译解决方案更快。""开发人员希望他们的工具更快。他们永远不会抱怨它更快。因此,有趣的是看到工具制造商,而不是工具的用户,而是实际的工具开发人员转向Rust等较低级别的工具,以帮助获得这些最后一英里的性能胜利。

目标三是继续为Next.js的未来10年奠定基础。

他说:"这个新的路由系统,你知道,我们显然对此感到非常兴奋。我们相信这是未来的基础。""但这也需要时间。人们会尝试,他们会有功能请求,他们会希望看到事情发生变化。我们认为这是未来5到10年的一项非常长期的投资。"

他补充说,一个"有一天",但可能不是今年的目标是一个更好的方式来处理Next.js内部的内容。

"今天,它可以工作,你仍然可以连接到任何你想要的内容源,但有一些方法可以简化开发人员的体验,"他补充说。"拥有它比要求更好,这就是为什么我不认为我们会在2024年达到它,但我想在未来做一些事情。

React:2024预览

React团队预计在新的一年里会有更多的框架采用React服务器组件,Meta的React工程经理Eli白色说。

"对于大多数人来说,RSC是他们认为React范围的一个重大变化,从仅仅是一个UI层到对您构建应用程序的方式产生更大影响,以获得最佳用户和开发人员体验,特别是对于SPA [单页应用程序]不够好的应用程序,"白色说。

虽然他没有具体说明2024年的任何新进展,但白色确实表示,他们将在2023年的一些启示上发布和分享更多进展。例如,在React Advanced上,团队让与会者看了React Forget,这是React的自动记忆编译器。白色说,React Forget将意味着开发人员不再需要使用useMemo和useCallback

白色补充说:"在React Native欧盟,我们分享了我们将把Web开发人员熟悉的Chrome开发工具带到React Native,从0.73开始。""我们还分享了我们对静态爱马仕的研究,这是我们的JavaScript本地编译器,它不仅有可能加快React Native应用程序的速度,而且从根本上改变了JavaScript的有效用途。"

Solid:专注于基本体

Solid开发人员可以在2024年关注SolidStart 1.0和Solid.js 2.0,根据Solid的创建者Ryan Carniato的说法。nbsp; SolidStart是一个元框架,这意味着它构建在Solid.js框架上。他说,这

SolidStart

"Web应用程序通常包括许多组件:数据库,服务器,前端,插件,数据获取/变化,缓存和基础设施。演示这些组件是一项挑战,通常需要跨应用程序堆栈的大量共享状态和冗余逻辑。进入SolidStart:一个元框架,它提供了一个平台,将所有这些部分放在一个位置。"

由于SolidStart仍处于测试阶段,Carniato有机会基本上使用生态系统中已经存在的东西来使其变得更好。

Carniato说:"其中一个重要的部分是,我们现在使用硝基,而不是编写我们自己的所有部署适配器,它也为Nuxt框架提供支持,这可以让你部署到所有不同的平台。"

另一个例子是任何Solid路由器都可以在SolidStart中工作。

"这意味着对路由器的底层部件进行了大量更新,以便它们可以一起工作,但我很高兴的是,我们的志愿者小团队需要维护的代码更少,而且它为开发人员提供了很大的灵活性和控制权,"他说。"他们不会被迫采用单一的解决方案,这对我来说非常重要,因为每个人都有自己的需求。正如我所说的,如果你构建了正确的部分,并弄清楚这些构建模块是什么,人们可以做得更多。"

他说,最终的结果是一个元框架,其中有"可交换"的部分,而不是太固执己见。Solid团队一直在思考在一个越来越多的元框架决定开发人员使用什么的世界中,正确的原语片段的影响。

他说:"对我来说,它一直是关于构建基元的,一个非常工程化的焦点,我认为这是它与众不同的部分原因。""我一直喜欢做出选择,我认为如果你有正确的原语,正确的片段,你可以构建正确的解决方案。"

他说,Solid 2.0应该在2024年中后期的某个时候出货。他说,现在,他们正在对它如何处理异步系统进行原型设计。

"Solid 2.0也将是非常重要的版本,因为我们正在重新审视反应式系统,并研究如何解决异步信号或异步系统,"Carniato说。

他补充说,固体试图平衡控制与性能。

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

原文链接

相关推荐
伟笑29 分钟前
elementUI 循环出来的表单,怎么做表单校验?
前端·javascript·elementui
确实菜,真的爱1 小时前
electron进程通信
前端·javascript·electron
魔术师ID2 小时前
vue 指令
前端·javascript·vue.js
Clown953 小时前
Go语言爬虫系列教程 实战项目JS逆向实现CSDN文章导出教程
javascript·爬虫·golang
星空寻流年3 小时前
css3基于伸缩盒模型生成一个小案例
javascript·css·css3
waterHBO5 小时前
直接从图片生成 html
前端·javascript·html
EndingCoder5 小时前
JavaScript 时间转换:从 HH:mm:ss 到十进制小时及反向转换
javascript
互联网搬砖老肖5 小时前
React组件(一):生命周期
前端·javascript·react.js
HCl+NaOH=NaCl+H_2O6 小时前
Quasar组件 Carousel走马灯
javascript·vue.js·ecmascript
℘团子এ6 小时前
vue3中预览Excel文件
前端·javascript