写点什么

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

  • 2024-02-27
    北京
  • 本文字数:3579 字

    阅读完需:约 12 分钟

大小:1.68M时长:09:45
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 为大家在前端学习的道路上准备了一份厚礼!扫码免费领取~


2024-02-27 18:106805

评论 1 条评论

发布
用户头像
2024年应该是 Web Component 爆发的一年
2024-02-28 09:30 · 北京
回复
没有更多了
发现更多内容

[JetPack] LiveData源码解析

Changing Lin

android 技术 JetPack

深度 | 阿里云蒋江伟:什么是真正的云原生?

阿里巴巴云原生

云计算 容器 运维 云原生 k8s

人设崩塌的美国生物实验室

脑极体

Redis中哈希分布不均匀该怎么办

Java 数据库 编程 程序员 面试

DCache 分布式存储系统|安装部署与应用创建

TARS基金会

缓存 分布式 微服务 存储 TARS

Java虚拟机知识 - JVM入门

小马哥

Java JVM 架构师 Java虚拟机 七日更

厉害!腾讯T3-2都还在学的微服务+MySQL+Kafka+boot2.x+虚拟机PDF

Java架构之路

Java 程序员 架构 面试 编程语言

从零开始学java第一天(为报训练营做准备)

落曦

Java 程序经验小结:避免使用终结方法

后台技术汇

28天写作

史上最全!阿里巴巴2021年最新最全500道Java后端面试大全(值得收藏)

Java 编程 程序员 面试

k8s 上运行我们的 springboot 服务之——springboot服务https请求

柠檬

Java k8s https Istio,

还热乎的面经

书旅

百度 面试 面经

AQS之ReentrantReadWriteLock写锁

伯阳

读写锁 ReentrantReadWriteLock 多线程与高并发 lock

架构师 3 期 3 班 -week9- 作业

zbest

作业 week9

OMG,阿里大佬Kafka手写实战记录,这也太香了

Java架构之路

Java 程序员 架构 面试 编程语言

区块链数字货币钱包系统软件开发|区块链数字货币钱包APP开发

系统开发

深度模型的日志异常检测,还有谁不会?

华为云开发者联盟

运维 日志 网络 AIOPS 系统

对微服务架构设计实践中若干问题的探讨

xcbeyond

微服务 28天写作

高效学习:如何制定有价值的学习目标

石云升

学习 28天写作

Pulsar vs Kafka,CTO 如何抉择?

Apache Pulsar

大数据 pulsar 消息中间件

FFMpeg解码API以及在解码过程中存在的丢帧问题

wangwei1237

ffmpeg 视频解码

如何开发一个完善的Kafka生产者客户端?

李尚智

kafka 架构 中间件 消息中间件

惊悚,单个java进程占用700%的CPU

万里无云

Java 后端 cpu

2020 总结 | VoltDB的亮点,你了解多少?

VoltDB

数据库 物联网 VoltDB

持币生息钱包APP系统开发|持币生息钱包软件开发

系统开发

架构师 3 期 3 班 -week9- 总结

zbest

总结 week9

有人相爱,有人年少财务自由,有人数据结构都背不出来

Java架构师迁哥

你跟涨薪只差这份Java核心知识点文档,读懂它你就是技术大佬!

Java架构之路

Java 程序员 架构 面试 编程语言

关注直播 解锁采集器新功能

滴滴云

运维 可观测性 直播技术 滴滴夜莺

HTML(六)——html表单

程序员的时光

程序员 大前端 七日更 28天写作

全球城市ZoneId和UTC时间偏移量的最全对照表

YourBatman

GMT UTC ZoneId 时区

JavaScript前端框架维护者对2024年的预测_架构/框架_Loraine Lawson_InfoQ精选文章