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说。

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

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

原文链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/451802.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UVC 设备框架在 Linux 4.15 内核的演变

1. 概述 发现之前的uvc框架和现在的还是有一些差别的(比如从videobuf 过渡到videobuf2),写个blog记录一下,方便以后查询,我的内核版本:Linux 4.15 UVC(USB Video Class)设备框架是…

ThingsBoard开源物联网平台介绍

1. Thingsboard 简介 ThingsBoard是一个基于Java的开源物联网平台,旨在实现物联网项目的快速开发、管理和扩展。它使用行业标准的物联网协议(MQTT、CoAP和HTTP)实现设备连接,并支持云和本地部署。ThingsBoard结合了可扩展性、容错…

混合云构建-VPN打通阿里云和Azure云

要在阿里云和Azure云之间通过VPN打通网络,您需要在两边分别设置VPN网关,并配置相应的连接和路由规则以确保两个云环境之间的网络流量可以互通。以下是一个基本的步骤指南: 为了更具体地说明如何在阿里云和Azure之间通过VPN打通网络,我们将通过一个简化的示例来演示整个过程…

【代码随想录 | 数组 05】螺旋矩阵 ||

文章目录 5.螺旋矩阵25.1题目5.2思路 5.螺旋矩阵2 5.1题目 59. 螺旋矩阵 II 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例一: 输入:n 3 输出&#xff…

全景解析 Partisia Blockchain:以用户为中心的全新数字经济网络

在区块链世界中,以比特币、以太坊网络为代表的主流区块链奠定了该领域早期的基础,并让去中心化、点对点、公开透明以及不可逆成为了该领域固有的意识形态。事实上,过于透明正在成为区块链规模性采用的一大障碍,我们看到 90% 以上的…

零知识玩转AVH(2)—— 怎么玩(1)

接前一篇文章:零知识玩转AVH(1)—— 初次接触 前一篇文章讲了AVH是什么,本文开始,详细AVH具体怎么玩。 由前一篇文章中提到的CSDN工作人员对于活动的说明,可以得出以下信息: 1. 这个任务是分两…

FineReport报表JS实现点击超链打开对话框报表并传参

例如在报表开发中,有如下需求: 点击当前报表中的某些文字,希望弹出另外的报表展示其他信息 (即可以通过JS实现点击超链接打开报表对话框,并且可以传递参数到报表对话框中)帆软帮助文档参考链接:…

AV1:编码块划分

​AV1是AOM于2018年发布的一代视频编码标准,相比于VP9其编码效率提升30%,相对于H.26X系列标准,AV1完全免去专利费可以自由使用。 AV1和其他视频编码标准类似,也采用基于块的编码架构。当编码器读进一帧图像,首先将其划…

签到提醒小工具:实时屏幕二维码检测+Server酱消息推送

前言 本文做了一个小工具,用来实时检测屏幕中出现的二维码,并通过Server酱发送信息推送到微信。 二维码检测 二维码检测主要通过opencv的detectAndDecode方法,基本用法如下: data, bbox, rectifiedImage detector.detectAndD…

【深度学习笔记】7_3 小批量随机梯度下降

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 7.3 小批量随机梯度下降 在每一次迭代中,梯度下降使用整个训练数据集来计算梯度,因此它有时也被称为批量梯度下…

折扣价和折扣实时转换

背景 : react 项目 问题 : 在折扣数中输入折扣2.333333,中间会多很多0,输入2.222,不能正常输入到第三位 如下图 原因 : toFixed()数字转字符串时可能会导致精度问题 解决思路 : parseFloat来解析浮点数,Number.isFinite判断给定的值是否为有…

es 查询案例分析

场景描述: 有这样一种场景,比如我们想搜索 title:Brown fox body:Brown fox 文章索引中有两条数据,兔子和狐狸两条数据 PUT /blogs/_bulk {"index": {"_id": 1}} {"title": "…

DayDreamInGIS 之 ArcGIS Pro二次开发 锐角检查

功能:检查图斑中所有的夹角,如果为锐角,在单独的标记图层中标记。生成的结果放在默认gdb中,以 图层名_锐角检查 的方式命名 大体实现方式:遍历图层中的所有要素(多部件要素分别处理)&#xff0…

【C语言】qsort函数的使用

1.使用qsort函数排序整型数据 #include <stdio.h> #include <string.h> #include <stdlib.h>//void qsort(void* base, //指针&#xff0c;指向的是待排序的数组的第一个元素 // size_t num, //是base指向的待排序数组的元素个数 // siz…

力扣每日一题 在受污染的二叉树中查找元素 哈希 DFS 二进制

Problem: 1261. 在受污染的二叉树中查找元素 思路 &#x1f468;‍&#x1f3eb; 灵神题解 &#x1f496; 二进制 时间复杂度&#xff1a;初始化为 O ( 1 ) O(1) O(1)&#xff1b;find 为 O ( m i n ( h , l o g 2 t a r g e t ) O(min(h,log_2target) O(min(h,log2​targ…

Django 学习笔记(Day1)

「写在前面」 本文为千锋教育 Django 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。 目录 0 课程介绍 1 Django 快速入门 1.1 Django 介绍 1.2 Django 安装 1.3 创建 Django 项目 1.4 运行 Django 项目 1.5 数据迁…

【C#】.net core 6.0 使用第三方日志插件Log4net,日志输出到控制台或者文本文档

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握。…

【C++】stack/queue

链表完了之后就是我们的栈和队列了&#xff0c;当然我们的STL中也有实现&#xff0c;下面我们先来看一下简单用法&#xff0c;跟我们之前C语言实现的一样&#xff0c;stack和queue有这么几个重要的成员函数 最主要的就是这么几个&#xff1a;empty&#xff0c;push&#xff0c;…

python读取大型csv文件,降低内存占用,提高程序处理速度

文章目录 简介读取前多少行读取属性列逐块读取整个文件总结参考资料 简介 遇到大型的csv文件时&#xff0c;pandas会把该文件全部加载进内存&#xff0c;从而导致程序运行速度变慢。 本文提供了批量读取csv文件、读取属性列的方法&#xff0c;减轻内存占用情况。 import pand…

git commit --amend

git commit --amend 1. 修改已经输入的commit 1. 修改已经输入的commit 我已经输入了commit fix: 删除无用代码 然后现在表示不准确&#xff0c;然后我通过命令git commit --amend修改commit