写点什么

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

评论 1 条评论

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

理解大端字节和小端字节

5加3彩票

教师节送什么老师最开心?程序员三招解决家长送礼难题!

华为云开发者联盟

编程 程序

java安全编码指南之:Number操作

程序那些事

java安全编码 java安全 安全编码规范

Docker Compose 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker Docker-compose redis集群 redis cluster

Go语言 sync.Mutex 源码分析

5加3彩票

Go 语言

遇到银河提现不了网站维护审核怎么办?

丛林里的余光

数据库 网站平台 提现

开始编译第一个typescript实例

程序员学院

Java typescript 大前端

【在云端 003】 星星之火,可以燎原——云时代的IoT

Bora.Don

云计算 IoT AIOT

synchronized实现原理及代码证明各种锁

Darren

源码 synchronized 轻量级锁 偏向锁 Monitor

Centos 上配置大数据环境

yuanhang

大数据

从零开始搭建完整的电影全栈系统(三)——restfulApi的编写

刘强西

RESTful 电影api

第13周学习总结

刘卓

bit比特, Byte字节,基础知识

5加3彩票

PageRank

GalaxyCreater

GO 语言交叉编译

5加3彩票

Go 语言

Linux命令netstat详解

5加3彩票

马云:今天的区块链并没有被人们认识到价值!

CECBC

区块链 阿里巴巴 马云

聊聊开发工程师如何转型产品经理

长沙造纸农

程序员 开发者 产品经理 转型 中年危机

MYSQL中时间类型底层存储,DATETIME ,TIMESTAMP,INT 如何选择?

5加3彩票

TCP三次握手和四次挥手

5加3彩票

ZIP 也能边下载边解压?优酷流式解压技术揭秘

阿里文娱技术团队

ZIP

GO 语言异常处理

5加3彩票

Go 语言

GO 语言超时实现

5加3彩票

Go 语言

epoll的原理和流程

5加3彩票

云栖大会边缘计算分论坛倒计时7天,这2点值得期待

阿里云Edge Plus

边缘计算

关于第四次财富狂潮的思考,区块链如猛虎出笼?

CECBC

比特币 区块链 数字货币

PHP Db类强制读主库(master)的设计

5加3彩票

php MySQL

第13周作业

刘卓

PHP配置管理-yaconf

5加3彩票

php

GO语言 MD5 四种实现方式

5加3彩票

Go 语言

Redis哨兵(sentinel )机制讲解

5加3彩票

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