写点什么

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:106982

评论 1 条评论

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

OpenHarmony 3.1 Beta版本关键特性解析——分布式DeviceProfile

OpenHarmony开发者

OpenHarmony OpenHarmony 3.1 Release DeviceProfile

内存不超过5M,datop 在识别冷热内存及跨 numa 访存有多硬核?| 龙蜥技术

OpenAnolis小助手

cpu 内存 datop 轻量级 muma

显卡只是为游戏而生吗?GPU服务器了解一下

Finovy Cloud

GPU服务器 GPU算力

(JavaSE)数据类型变量与运算符

爱好编程进阶

Java 程序员 后端开发

13-注解增删改查

爱好编程进阶

Java 程序员 后端开发

15 个优秀开源的 Spring Boot 学习项目,一网打尽!

爱好编程进阶

Java 程序员 后端开发

终于有人把tomcat讲清楚了!阿里大牛推荐的tomcat架构解析文档

Java架构追梦

Java 后端开发 JVM’

云原生 on nLive:云上 Nebula Graph

NebulaGraph

数据库 图数据库 原生云

网站开发进阶(二十五)JS实现将html表格导出为excel文件

No Silver Bullet

5月月更 表格导出

What?构造的查询语句会导致堆栈溢出

华为云开发者联盟

neo4j 图数据库 堆栈溢出 查询语句 查询语言

微服务实战文档分享,阿里内部的Spring cloud微服务精髓都在里面

Java架构追梦

Java 微服务 阿里

云图说 | 华为云医疗智能体EIHealth,AI赋能基因组研究

华为云开发者联盟

华为云 云图说 EIHealth 医疗智能体 基因组

动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路

华为云开发者联盟

stm32 RC522射频卡模块 IC卡 RC522

Stack 顿悟三部曲(1):从CPU的视角说起

蓬蒿

cpu 堆栈 计算机原理 stack

2021全网最全Activiti7教程02(Activiti7入门使用-欢迎收藏)

爱好编程进阶

Java 程序员 后端开发

《数字经济全景白皮书》Z世代用户洞察篇 完整版 发布

易观分析

Z世代

让 Rust 的 CI 加速 2~3倍速度

非凸科技

rust 构建 cl cithub 缓存空间

区块链 重塑不良资产互信机制

CECBC

2年工作经验的Java程序员面试经历

爱好编程进阶

程序员 后端开发

2021年4月23号,成功斩获阿里(Java岗

爱好编程进阶

Java 程序员 后端开发

7Z命令行

爱好编程进阶

Java 程序员 后端开发

[Day36]-[二叉树]-在每个树行中找最大值

方勇(gopher)

LeetCode 二叉树 数据结构算法

元宇宙核心技术--脑机接口

CECBC

不愧是字节跳动技术官,算法精髓全写这本666页笔记里了

Java架构追梦

Java 程序员 数据结构与算法、

耗时三年终于整理出了SSM+微服务+Nginx+Redis+MySQL的PDF了!

Java架构追梦

Java 后端开发

维权思考

成周

架构师成长路线

AI架构师汤师爷

软件架构 架构师 成长路线

4年JAVA外包终上岸,我只能说避雷这些公司

爱好编程进阶

Java 程序员 后端开发

跟我学Python图像处理丨获取图像属性、兴趣ROI区域及通道处理

华为云开发者联盟

Python OpenCV 图像处理 图像 ROI区域

Apache ShardingSphere 企业行|走进汽车之家

SphereEx

数据库 企业 ShardingSphere SphereEx apache 社区

2021-11-9【数据结构平时实验】

爱好编程进阶

Java 程序员 后端开发

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