百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

减少复杂性!JavaScript 2024 发展趋势预判

liuian 2024-12-26 15:05 68 浏览

【CSDN 编者按】这是一篇由 Ryan Carniato 于2023年12月29日发表的关于「2024年JavaScript 框架发展趋势」的文章。作者认为 2023 年是 JavaScript 框架发展的重要一年,预计 2024 年将继续看到更大的变化,其中包括服务器优先、混合路由、边缘网络和人工智能等方面的发展。此外,2024年可能会继续加强框架的成熟化趋势。作者对于简化方案,如 Astro 和 HTMX,仍然持乐观态度,并期待框架能够更好地履行其承诺,专注于提供更有力的解决方案,减少复杂性。


作者 | Ryan Carniato 责编 | 梦依丹
出品 | CSDN(ID:CSDNnews)

岁末年初,恰逢年度总结时刻。不少开发者也在积极参加 CSDN 举行的年度征文活动——2023年,我的编程之旅。晒出自己过去一年的技术成就与所在领域的技术变化,GET 到的新功能、新技术等。

近日,知名前端爱好者,SolidJS UI 库作者,同时也是 MarkoJS 核心团队的成员 Ryan Carniato 撰写了《进入2024 的 JavaScript 框架,本文总结了 JavaScript 框架在 2023 年的技术趋势与 2024 年的预期变化。

以下为译文:

对于 JavaScript 框架来说,2023 年是相当重要的一年。新技术终于展示出了它们的实用性,而旧框架也在卷土重来。如果你没注意到的话,可能就错过了一个相当重大的转变。
我预计,2024 年将继续带来更大的变化。这一次的重点不再是新技术,而是对现有技术的改进和完善。基础已经打下,我们有更多的内容可以实现和呈现给用户。

服务器优先(Server First)
如果要为过去几年选择一个主题,那就是"服务器优先"。这个观点一直备受争议,但无可否认。短短几年前,人们都在谈论渐进式 Web 应用和离线优先的概念。但是,这种讨论几乎销声匿迹。

https://twitter.com/htmx_org/status/1725241732260847914
相反,HTMX 以其犀利的观点,解释了为什么 JavaScript 是一个错误。Astro 也毫不掩饰地接管了内容站点开发。甚至 React 核心团队也接受了服务器的简洁性,正如 Dan Abramov 在演讲中所强有力表达的那样,他探讨了如果 React 一直以服务器为优先会怎样。
那么,我们曾经钟爱的单页面应用(Single Page App)在这么短的时间里经历了什么?它现在是否还存在,我们现在是生活在多页面应用(Multi-Page App)和只有服务器渲染的 HTML 时代吗?

回顾 2023
去年,我也写了一篇类似的文章,探讨 JavaScript 框架的发展趋势。那篇文章所提到的三大技术趋势成了过去一年讨论的重点。
无处不在的 Signals
自从 SolidJS 和 Vue 开始采用反应性原语之后,Preact 和 Qwik 紧随其后,这种趋势在 2023 年变得更加强劲。

https://github.com/angular/angular/discussions/49090

在二月,Angular 团队也宣布采用了这一技术。该消息在社交媒体上引起了很大的轰动。不仅如此,这也是导致 Angular 引起重大关注的几个因素之一。有人甚至称之为 Angular 的复兴。而且,这是过去几年来 React 团队首次加入了这场争论,因为人们开始纷纷问道:“React 何时会采用 Signal 呢?”
关于这个问题,我在下面的文章中写了更详细的回答(还附有与 Dan Abramov 在中评论的讨论)。
不过,简单来说,React 团队对 Signal 这种 API 并不太感兴趣,他们更期待的是「Forget」编译器,因为它能起到类似的作用。当然,Signal 的应用并没有到此结束。谷歌的 Web 组件框架 Lit 发布了原生支持信号的 Lit 3。Rich Harris 则透露了 Svelte 的未来发展方向,他们基于 Signal 的新「Runes」将成为即将发布的 Svelte 5 中主要的响应式来源。到 2023 年底,Signal 已经成为大多数前端 JavaScript 框架的重要组成部分。
混合路由

服务器端路由在过去一年中变得越来越重要。从 2022 年底开始,这种模式逐渐被人们所接受,比如使用 React Server Components 和 Astro 的 View Transition API 集成。
它的基本原则是,在初始页面加载后,服务器端的渲染不应影响客户端的导航,而客户端的导航也不应意味着我们需要发送所有的 JavaScript 来渲染那些可以在服务器端静态渲染的页面部分。
需要注意的是,不同的解决方案产生的效果也不同,这一领域仍在发展之中。我们正在进入一个全新的领域,它既不是传统的单页应用程序,也不是传统的多页站点。我们需要了解新的权衡和概念。而且,我们还远没有解决所有的问题。
边缘网络:最后的前沿

边缘函数似乎是显而易见的成功案例之一。将服务器靠近最终用户来大大减少延迟。使用更轻量级的运行时,可以大大减少冷启动时间。
如果说 2023 年有什么不同的话,那就是边缘技术发展的一年。我们一开始非常热情。毕竟,Cloudflare 发布了边缘数据库,我们所有喜欢的提供商都开始提供边缘函数,我们最喜欢的框架也添加了开箱即用的支持。供应商已经成立了一个名为 WinterCG 的委员会,来讨论平台的标准化问题。未来就在眼前。


我们最终意识到,即使在这些边缘函数中,某些 Node API 也是必不可少的。你可以感谢或讨厌 Next 和 Vercel 将 AsyncLocalStorage 推广到每个运行时,但我们需要它。
我们还意识到,边缘数据库对于所有应用程序来说永远是不够的。即使有流媒体,服务器水瀑仍然真实存在且影响很大。是的,即使使用 React Server Components 也是如此。但这确实推进了我去年提出的目标,即使用分布式部署进行整体创作。我们看到服务器函数(server$,使用 server)甚至像工作器函数这样的变体在年初就出现了,表明我们可以分布我们部署 API 的方式,被 Solid、Qwik 和 Next 采用。
到年底,Next 14 发布了新的实验性部分预渲染,允许单个请求从边缘提供静态内容,同时通过代理到更靠近数据库的无服务器函数,所有内容都被流式传输,以提供类似于边缘的体验,而无需在那里部署整个应用程序。看到一些独创性提供了两全其美的解决方案,真是令人敬畏。

https://twitter.com/rickhanlonii/status/1722704383064842280


2024 年的趋势
Signals 的年代
我已经讲了很多关于 Signals 的内容,但真正的好处还没有显现出来。JavaScript 中已经有了类似 Signals 的细粒度原始函数 15 年了,那为什么是现在呢?

https://twitter.com/t3dotgg/status/1730711700805140908


预计 JavaScript 框架将进一步整合 Signal 机制,例如 Vue Vapor 和 Svelte 5 中的新反应性模型。
基础实施驱动开发
既然服务器端渲染框架已经得到了很大的支持,那么下一个合理的发展方向就是继续探索如何最大限度地发挥这种新功能的作用。标准的制定比较慢,WinterCG 也需要一些时间,但这并不会阻止发展的势头。
为了实现差异化,我预计框架和基础设施提供商将面临提供独特功能的压力,而这些功能可能仅在特定平台上可用。虽然 2023 年看到了各提供商在提供类似功能方面的平等化趋势,例如在基本静态和函数托管之外提供键值存储 Blob 等功能,但我认为在提供独特价值方面的竞争将会加剧。
框架的作用是保持一致的创作体验和思维模型,同时寻找利用新功能的方法。这与 21 世纪初的浏览器大战类似,未来还有很多发展空间。
AI
去年,从框架的角度来看,谈论人工智能还为时尚早。明年可能也是如此。但它已经渐渐出现在我们的视野中。代码迁移和生成工具都是很好的想法,但它们与多年来使用的可视化无代码或低代码编辑器面临着同样的问题。人与机器的交互界面仍然至关重要。毕竟,代码是一个活生生的存在。它随着时间的推移不断生长和维护。
在过去的一年里,与其他框架的作者交流时,我们发现人工智能引起了周围人的极大兴趣。

https://twitter.com/aidenybai/status/1737616282210738650

人工智能正在回答一个长久以来的问题,那就是为什么你的应用程序运行缓慢。

对开发工具的影响只是其中一方面。我们还越来越多地看到实时性能被融入到框架中。这不仅指的是用于持久化后端的 Websockets。元框架中的 API 已经发展到超越简单的 JSON,实现了完全流式的跨网络 JavaScript 执行,这在 SolidStart、Qwik 和 Next 中通过“服务器函数”实现。现在,我们可以很容易地想象出生成技术实时创建你的用户界面的情景。

https://twitter.com/mhevery/status/1722928972789408240

总结
2024 年可能会延续我们在过去几年看到的成熟趋势。从 2020 年到 22 年,我们看到了很多新的 JavaScript(和 WASM)框架(Qwik、Million.js、Astro、Next 13、Remix、Hydrogen、SvelteKit、SolidStart、Leptos、Dioxus、HTMX),但去年的情况发生了改变。不再出现大量新的 JavaScript 框架,相比之下相对较少。然而,我们已经找到了解决问题的方法和途径。现在的关键是要充分发挥这些方法和途径的潜力,将它们应用到实际开发中,取得更好的效果。
我不确定我们是否已经成功地解决了复杂性问题,这给像 Astro 或 HTMX 这样简化的解决方案带来了很大的肯定。但我仍然充满希望。
也许不太可能期望每个人都对“单页应用程序”的确切定义以及何时使用各种选项达成一致,但这些解决方案每天都变得更加强大,能够实现它们既定的目标。
现在不再怀疑我们熟悉的Web开发将发生变化。即使方向还不完全明确,革命已经来临。期待与你一同见证这一变革。

相关推荐

驱动网卡(怎么从新驱动网卡)
驱动网卡(怎么从新驱动网卡)

网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...

2026-01-30 00:37 liuian

win10更新助手装系统(微软win10更新助手)

1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...

windows11专业版密钥最新(windows11专业版激活码永久)

 Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...

手机删过的软件恢复(手机删除过的软件怎么恢复)
手机删过的软件恢复(手机删除过的软件怎么恢复)

操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...

2026-01-29 23:55 liuian

一键ghost手动备份系统步骤(一键ghost 备份)

  步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。  步骤...

怎么创建局域网(怎么创建局域网打游戏)

  1、购买路由器一台。进入路由器把dhcp功能打开  2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。  3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...

精灵驱动器官方下载(精灵驱动手机版下载)

是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...

一键还原系统步骤(一键还原系统有哪些)

1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。  2、在弹出的“准备安装”窗口中,可...

电脑加速器哪个好(电脑加速器哪款好)

我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...

任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)

是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...

u盘怎么恢复文件(u盘文件恢复的方法)

开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...

系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)

1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...

剪贴板权限设置方法(剪贴板访问权限)
剪贴板权限设置方法(剪贴板访问权限)

1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...

2026-01-29 21:37 liuian

平板系统重装大师(平板重装win系统)

如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...

联想官网售后服务网点(联想官网售后服务热线)

联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...