自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript前端框架2024年展望

開發(fā) 前端
“對(duì)我來說,一直都是關(guān)于基本元素的構(gòu)建塊,非常注重工程,我認(rèn)為這也是它與眾不同的原因之一,”他說?!拔乙恢毕矚g給予選擇,并且我認(rèn)為如果你擁有正確的基本元素,正確的構(gòu)建塊,你就可以構(gòu)建出正確的解決方案。”

Angular、Next.js、React和Solid的維護(hù)者和創(chuàng)作者們展望2024年,分享了他們計(jì)劃中的改進(jìn)。

譯自2024 Predictions by JavaScript Frontend Framework Maintainers,作者 Loraine Lawson。

由于水晶球破裂,The New Stack 采訪了來自 Angular、Next.js、React 和 Solid 的創(chuàng)始人和維護(hù)者,詢問他們對(duì)2024年的規(guī)劃。以下概述了前端開發(fā)者可以期待的內(nèi)容。

Angular: 可選的 Zone.js

去年,Angular 的兩個(gè)重大成就是引入了細(xì)粒度的反應(yīng)性 Signals和可延遲的視圖,Google 的 Angular DevRel 技術(shù)負(fù)責(zé)人Minko Gechev說。下一年將在此基礎(chǔ)上繼續(xù)專注于細(xì)粒度的反應(yīng)性,并使 Zone.js 可選,他向 The New Stack 透露。

在 Angular 中,Zone 是跨異步任務(wù)持續(xù)存在的執(zhí)行上下文。Zones 在這個(gè) GitHub 倉(cāng)庫(kù)中有詳細(xì)解釋,但一個(gè) zone 有五個(gè)職責(zé),包括攔截異步任務(wù)調(diào)度和封裝回調(diào)進(jìn)行錯(cuò)誤處理和跨異步操作的區(qū)域跟蹤。Zone.js 可以創(chuàng)建跨異步操作持續(xù)存在的上下文,以及為異步操作提供生命周期鉤子。

“我們正在探索為現(xiàn)有項(xiàng)目啟用可選的 Zone.js,開發(fā)人員應(yīng)該能夠通過重構(gòu)現(xiàn)有應(yīng)用來利用這個(gè)功能,” Gechev 說,“使用可選的 Zone.js,我們預(yù)期加載時(shí)間和首次渲染會(huì)有改進(jìn)。在細(xì)粒度反應(yīng)性的工作將其提升到另一個(gè)水平,使我們能夠僅檢測(cè)組件模板的一部分中的更改?!?/p>

這些特性將導(dǎo)致運(yùn)行時(shí)更快,他說。

在另一項(xiàng)性能操作中,Angular正在考慮是否默認(rèn)啟用混合渲染。Gechev補(bǔ)充說,可以選擇不使用混合渲染,因?yàn)樗赡軙?huì)增加托管需求和成本。

“我們看到 SSG(靜態(tài)站點(diǎn)生成)和 SSR(服務(wù)器端渲染)的巨大價(jià)值,通過在v17 中奠定堅(jiān)實(shí)的基礎(chǔ),我們正在努力完成最后的拋光工作,以從一開始就啟用此體驗(yàn),” Gechev說。

他補(bǔ)充說,優(yōu)先事項(xiàng)之一是實(shí)現(xiàn)其Signals RFC。

開發(fā)者也可能會(huì)看到 Angular 文檔的改進(jìn)。根據(jù)開發(fā)者調(diào)查,開發(fā)者希望獲得升級(jí)的學(xué)習(xí)體驗(yàn),其中包括使 Angular.dev 成為該框架的新首頁(yè)。開發(fā)人員還將首次加載時(shí)間列為優(yōu)先事項(xiàng),混合渲染、局部 hydration 和可選的 Zone.js 應(yīng)該可以解決這一問題,他補(bǔ)充說,組件創(chuàng)作也是 Angular 計(jì)劃進(jìn)一步簡(jiǎn)化的事項(xiàng)。

“我們致力于迭代交付功能,并隨著時(shí)間的推移逐步增強(qiáng)它們”,Gechev說,“開發(fā)者將能夠在2024年受益于所有改進(jìn),并在未來幾年獲得更好的開發(fā)者體驗(yàn)和性能。”

Next.js: 正在開發(fā)新的編譯器

Next.js 在2023年引入了新應(yīng)用服務(wù)器,旨在支持React服務(wù)器組件(RSC)和Server Action。它繼續(xù)支持舊的應(yīng)用服務(wù)器,其路由系統(tǒng)可以互換,Vercel產(chǎn)品負(fù)責(zé)人Lee Robinson說,該公司監(jiān)督此框架。這種互操作性意味著開發(fā)人員可以慢慢地添加新特性。

“有些客戶已經(jīng)使用Next.js構(gòu)建了5-6年,他們對(duì)這些較新的特性的采用也需要多年時(shí)間”,Robinson說,“我們希望盡可能順利地讓人們參與這個(gè)過程。”

在新一年,Next.js希望解決許多問題,但一個(gè)優(yōu)先事項(xiàng)可能是簡(jiǎn)化緩存。就開發(fā)者體驗(yàn)而言,這可以更容易些,他說。

“通常,生態(tài)系統(tǒng)中的許多開發(fā)人員不得不引入大量額外的包或?qū)W習(xí)如何使用其他工具來進(jìn)行獲取、緩存和重新驗(yàn)證”,Robinson說,“Next.js現(xiàn)在已經(jīng)內(nèi)置了很多這些功能,這非常強(qiáng)大,但這也意味著需要學(xué)習(xí)的額外事項(xiàng),初步反饋是,'這很棒,非常強(qiáng)大,但如果能簡(jiǎn)單一些就更好了'?!?/p>

Next.js團(tuán)隊(duì)也將繼續(xù)關(guān)注性能改進(jìn),他稱這是“我們的持續(xù)投資”。

這很可能以明年的新編譯器的形式呈現(xiàn),該編譯器將加快在開發(fā)人員機(jī)器上啟動(dòng)Next.js的速度,他補(bǔ)充說。該編譯器已經(jīng)研發(fā)了大約一年,Vercel 一直在其產(chǎn)品和應(yīng)用內(nèi)部使用它。他說,這個(gè)由Rust提供動(dòng)力的編譯器即使不緩存也比之前的編譯器緩存時(shí)快。

“我們距離推出它非常近了,每個(gè)人都可以默認(rèn)啟用它,而且它比現(xiàn)有的 Webpack 編譯解決方案更快”,Robinson說,“開發(fā)人員希望他們的工具更快。如果它變得更快,他們永遠(yuǎn)不會(huì)抱怨。因此,有趣的是看到工具制造者,不是工具的用戶,而是實(shí)際的工具開發(fā)人員轉(zhuǎn)向諸如 Rust 之類的底層工具,以幫助獲得這最后一英里的性能提升?!?/p>

第三個(gè)目標(biāo)是繼續(xù)為未來 10 年的 Next.js 奠定基礎(chǔ)。

“這個(gè)新的路由系統(tǒng),你知道,我們顯然非常興奮。我們認(rèn)為這是未來的基礎(chǔ)”,他說,“但這也需要時(shí)間。人們會(huì)試用,他們會(huì)有功能請(qǐng)求,并希望看到事情發(fā)生改變。我們將其視為未來 5 至 10 年的非常長(zhǎng)期投資?!?/p>

他補(bǔ)充說,一個(gè)“某天”但可能不是今年的目標(biāo)是以更好的方式處理 Next.js 中的內(nèi)容。

“今天,它能夠正常運(yùn)行,你仍然可以連接到任何你想要的內(nèi)容源,但有可能簡(jiǎn)化開發(fā)者體驗(yàn)的方法,”他補(bǔ)充說?!斑@更像是一種可有可無的東西,而不是一項(xiàng)必需品,這就是為什么我認(rèn)為我們?cè)?024年不會(huì)著手處理它的原因,但我希望將來能夠?qū)ζ溥M(jìn)行一些處理?!?/p>

React:2024預(yù)覽

Meta的React工程經(jīng)理Eli White說,React團(tuán)隊(duì)希望在新一年看到更多框架采用React服務(wù)器組件。

“對(duì)于大多數(shù)人來說,RSC已成為他們對(duì)React范圍的看法的重大變化,從僅僅是一個(gè)UI層,到對(duì)您架構(gòu)應(yīng)用程序的方式有更多影響,以獲得最佳的用戶和開發(fā)人員體驗(yàn),特別是對(duì)于單頁(yè)應(yīng)用程序(SPA)不夠好的應(yīng)用程序”,White說。

雖然他沒有具體說明2024年的任何新發(fā)展,但White確實(shí)表示他們將發(fā)布和分享2023年一些啟示的更多進(jìn)展。例如,在React高級(jí)會(huì)議上,該團(tuán)隊(duì)向與會(huì)者展示了React Forget,這是React的自動(dòng)記憶編譯器。White說,React Forget將意味著開發(fā)人員不再需要使用useMemo和useCallback。

在React Native EU活動(dòng)上,White補(bǔ)充說:“我們分享了消息,即我們將在0.73版本開始將Web開發(fā)人員熟悉的Chrome開發(fā)工具引入React Native。我們還初步展示了我們對(duì)Static Hermes的研究成果,這是我們用于JavaScript的本地編譯器,它不僅有可能加速React Native應(yīng)用程序,而且從根本上改變了JavaScript的有效用途。”

Solid:專注于基本元素(Primitives)

Solid的創(chuàng)作者Ryan Carniato表示,Solid開發(fā)人員可以期待2024年推出的SolidStart 1.0和Solid.js 2.0。SolidStart是一個(gè)元框架,意味著它建立在Solid.js框架之上。他說,這與Svelte的SvelteKit相類似。

SolidStart的文檔這樣解釋:

“Web應(yīng)用程序通常由許多組件組成:數(shù)據(jù)庫(kù)、服務(wù)器、前端、打包工具、數(shù)據(jù)獲取/變異、緩存和基礎(chǔ)架構(gòu)。協(xié)調(diào)這些組件具有挑戰(zhàn)性,通常需要在應(yīng)用程序堆棧中共享大量狀態(tài)和冗余邏輯。這就是SolidStart的作用:提供一個(gè)在一個(gè)位置將所有這些部分組合在一起的平臺(tái)?!?/p>

由于SolidStart仍處于測(cè)試階段,Carniato有機(jī)會(huì)基本上使用生態(tài)系統(tǒng)中已有的東西來使其更好。

“其中一個(gè)重要的部分是,我們現(xiàn)在使用Nitro而不是編寫自己的部署適配器,Nitro還支持Nuxt框架,這使你能夠部署到所有不同的平臺(tái),” Carniato說。

另一個(gè)例子是任何Solid路由器都將在SolidStart中起作用。

“這意味著對(duì)路由器的基礎(chǔ)部分進(jìn)行了很多更新,以使它們可以共同工作,但我對(duì)最終結(jié)果感到非常滿意,因?yàn)槲覀冃F(tuán)隊(duì)的志愿者需要維護(hù)的代碼量要少得多,并且它為開發(fā)人員提供了很多靈活性和控制,“他說?!八麄儾槐黄炔捎脝我坏慕鉀Q方案,這對(duì)我來說非常重要,因?yàn)槊總€(gè)人都有自己的需求。正如我所說,如果構(gòu)建正確的組件并找出這些構(gòu)建塊是什么,人們可以做更多的事情?!?/p>

最終結(jié)果是一個(gè)“可互換”組件的元框架,不持有太多主觀意見,他說。Solid團(tuán)隊(duì)一直在思考在越來越多的元框架決定開發(fā)人員使用什么的世界中,正確的基本元素對(duì)影響的問題。

“對(duì)我來說,一直都是關(guān)于基本元素的構(gòu)建塊,非常注重工程,我認(rèn)為這也是它與眾不同的原因之一,”他說?!拔乙恢毕矚g給予選擇,并且我認(rèn)為如果你擁有正確的基本元素,正確的構(gòu)建塊,你就可以構(gòu)建出正確的解決方案?!?/p>

他表示,Solid 2.0預(yù)計(jì)將在2024年中晚期發(fā)布。目前,他們正在原型化它將如何處理異步系統(tǒng)。

“Solid 2.0也將是一個(gè)非常重要的發(fā)布版本,因?yàn)槲覀冋谥匦聦徱暦磻?yīng)系統(tǒng),并思考如何解決異步信號(hào)或異步系統(tǒng)的問題,” Carniato說。

他補(bǔ)充說,Solid試圖在控制和性能之間取得平衡。

“我們的社區(qū)中有很多熱情的人,非常關(guān)注性能的技術(shù)人員,關(guān)心控制的人,”他說?!拔覀兾嗽S多真正想要控制構(gòu)建的每個(gè)部分的人?!?/p>

責(zé)任編輯:武曉燕 來源: 云云眾生s
相關(guān)推薦

2024-04-07 08:56:25

JavaScriptweb應(yīng)用開發(fā)工具

2023-12-15 09:46:19

2024-01-02 10:52:08

人工智能AIChatGPT

2021-06-15 11:10:00

JavaScript框架語(yǔ)言

2024-01-05 16:16:03

2024-01-09 17:58:47

2024-04-03 07:16:46

CSS前端開發(fā)Bootstrap

2023-12-18 16:14:01

生成式AIIT

2022-02-17 11:41:26

JavaScript框架編程語(yǔ)言

2019-10-21 09:29:00

JavaScriptHTML數(shù)據(jù)庫(kù)

2024-12-26 08:06:35

2011-01-12 10:50:23

jqueryhtmlNosql

2020-03-25 13:59:22

前端開發(fā)編程

2020-02-27 15:01:17

前端開源項(xiàng)目

2023-12-20 16:04:51

西門子

2023-03-30 14:34:00

2023-04-27 08:23:38

JavaScriptVue.jsMVVC

2020-01-21 22:08:05

編程語(yǔ)言PythonJava

2023-02-06 15:05:06

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)