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

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出桑珠孜免費(fèi)做網(wǎng)站回饋大家。
譯自2024 Predictions by JavaScript Frontend Framework Maintainers,作者 Loraine Lawson。
由于水晶球破裂,The New Stack 采訪了來(lái)自 Angular、Next.js、React 和 Solid 的創(chuàng)始人和維護(hù)者,詢問(wèn)他們對(duì)2024年的規(guī)劃。以下概述了前端開(kāi)發(fā)者可以期待的內(nèi)容。
Angular: 可選的 Zone.js
去年,Angular 的兩個(gè)重大成就是引入了細(xì)粒度的反應(yīng)性 Signals和可延遲的視圖,Google 的 Angular DevRel 技術(shù)負(fù)責(zé)人Minko Gechev說(shuō)。下一年將在此基礎(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,開(kāi)發(fā)人員應(yīng)該能夠通過(guò)重構(gòu)現(xiàn)有應(yīng)用來(lái)利用這個(gè)功能,” Gechev 說(shuō),“使用可選的 Zone.js,我們預(yù)期加載時(shí)間和首次渲染會(huì)有改進(jìn)。在細(xì)粒度反應(yīng)性的工作將其提升到另一個(gè)水平,使我們能夠僅檢測(cè)組件模板的一部分中的更改。”
這些特性將導(dǎo)致運(yùn)行時(shí)更快,他說(shuō)。
在另一項(xiàng)性能操作中,Angular正在考慮是否默認(rèn)啟用混合渲染。Gechev補(bǔ)充說(shuō),可以選擇不使用混合渲染,因?yàn)樗赡軙?huì)增加托管需求和成本。
“我們看到 SSG(靜態(tài)站點(diǎn)生成)和 SSR(服務(wù)器端渲染)的巨大價(jià)值,通過(guò)在v17 中奠定堅(jiān)實(shí)的基礎(chǔ),我們正在努力完成最后的拋光工作,以從一開(kāi)始就啟用此體驗(yàn),” Gechev說(shuō)。
他補(bǔ)充說(shuō),優(yōu)先事項(xiàng)之一是實(shí)現(xiàn)其Signals RFC。
開(kāi)發(fā)者也可能會(huì)看到 Angular 文檔的改進(jìn)。根據(jù)開(kāi)發(fā)者調(diào)查,開(kāi)發(fā)者希望獲得升級(jí)的學(xué)習(xí)體驗(yàn),其中包括使 Angular.dev 成為該框架的新首頁(yè)。開(kāi)發(fā)人員還將首次加載時(shí)間列為優(yōu)先事項(xiàng),混合渲染、局部 hydration 和可選的 Zone.js 應(yīng)該可以解決這一問(wèn)題,他補(bǔ)充說(shuō),組件創(chuàng)作也是 Angular 計(jì)劃進(jìn)一步簡(jiǎn)化的事項(xiàng)。
“我們致力于迭代交付功能,并隨著時(shí)間的推移逐步增強(qiáng)它們”,Gechev說(shuō),“開(kāi)發(fā)者將能夠在2024年受益于所有改進(jìn),并在未來(lái)幾年獲得更好的開(kāi)發(fā)者體驗(yàn)和性能?!?/p>
Next.js: 正在開(kāi)發(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說(shuō),該公司監(jiān)督此框架。這種互操作性意味著開(kāi)發(fā)人員可以慢慢地添加新特性。
“有些客戶已經(jīng)使用Next.js構(gòu)建了5-6年,他們對(duì)這些較新的特性的采用也需要多年時(shí)間”,Robinson說(shuō),“我們希望盡可能順利地讓人們參與這個(gè)過(guò)程?!?/p>
在新一年,Next.js希望解決許多問(wèn)題,但一個(gè)優(yōu)先事項(xiàng)可能是簡(jiǎn)化緩存。就開(kāi)發(fā)者體驗(yàn)而言,這可以更容易些,他說(shuō)。
“通常,生態(tài)系統(tǒng)中的許多開(kāi)發(fā)人員不得不引入大量額外的包或?qū)W習(xí)如何使用其他工具來(lái)進(jìn)行獲取、緩存和重新驗(yàn)證”,Robinson說(shuō),“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),該編譯器將加快在開(kāi)發(fā)人員機(jī)器上啟動(dòng)Next.js的速度,他補(bǔ)充說(shuō)。該編譯器已經(jīng)研發(fā)了大約一年,Vercel 一直在其產(chǎn)品和應(yīng)用內(nèi)部使用它。他說(shuō),這個(gè)由Rust提供動(dòng)力的編譯器即使不緩存也比之前的編譯器緩存時(shí)快。
“我們距離推出它非常近了,每個(gè)人都可以默認(rèn)啟用它,而且它比現(xiàn)有的 Webpack 編譯解決方案更快”,Robinson說(shuō),“開(kāi)發(fā)人員希望他們的工具更快。如果它變得更快,他們永遠(yuǎn)不會(huì)抱怨。因此,有趣的是看到工具制造者,不是工具的用戶,而是實(shí)際的工具開(kāi)發(fā)人員轉(zhuǎn)向諸如 Rust 之類的底層工具,以幫助獲得這最后一英里的性能提升?!?/p>
第三個(gè)目標(biāo)是繼續(xù)為未來(lái) 10 年的 Next.js 奠定基礎(chǔ)。
“這個(gè)新的路由系統(tǒng),你知道,我們顯然非常興奮。我們認(rèn)為這是未來(lái)的基礎(chǔ)”,他說(shuō),“但這也需要時(shí)間。人們會(huì)試用,他們會(huì)有功能請(qǐng)求,并希望看到事情發(fā)生改變。我們將其視為未來(lái) 5 至 10 年的非常長(zhǎng)期投資?!?/p>
他補(bǔ)充說(shuō),一個(gè)“某天”但可能不是今年的目標(biāo)是以更好的方式處理 Next.js 中的內(nèi)容。
“今天,它能夠正常運(yùn)行,你仍然可以連接到任何你想要的內(nèi)容源,但有可能簡(jiǎn)化開(kāi)發(fā)者體驗(yàn)的方法,”他補(bǔ)充說(shuō)?!斑@更像是一種可有可無(wú)的東西,而不是一項(xiàng)必需品,這就是為什么我認(rèn)為我們?cè)?024年不會(huì)著手處理它的原因,但我希望將來(lái)能夠?qū)ζ溥M(jìn)行一些處理?!?/p>
React:2024預(yù)覽
Meta的React工程經(jīng)理Eli White說(shuō),React團(tuán)隊(duì)希望在新一年看到更多框架采用React服務(wù)器組件。
“對(duì)于大多數(shù)人來(lái)說(shuō),RSC已成為他們對(duì)React范圍的看法的重大變化,從僅僅是一個(gè)UI層,到對(duì)您架構(gòu)應(yīng)用程序的方式有更多影響,以獲得最佳的用戶和開(kāi)發(fā)人員體驗(yàn),特別是對(duì)于單頁(yè)應(yīng)用程序(SPA)不夠好的應(yīng)用程序”,White說(shuō)。
雖然他沒(méi)有具體說(shuō)明2024年的任何新發(fā)展,但White確實(shí)表示他們將發(fā)布和分享2023年一些啟示的更多進(jìn)展。例如,在React高級(jí)會(huì)議上,該團(tuán)隊(duì)向與會(huì)者展示了React Forget,這是React的自動(dòng)記憶編譯器。White說(shuō),React Forget將意味著開(kāi)發(fā)人員不再需要使用useMemo和useCallback。
在React Native EU活動(dòng)上,White補(bǔ)充說(shuō):“我們分享了消息,即我們將在0.73版本開(kāi)始將Web開(kāi)發(fā)人員熟悉的Chrome開(kāi)發(fā)工具引入React Native。我們還初步展示了我們對(duì)Static Hermes的研究成果,這是我們用于JavaScript的本地編譯器,它不僅有可能加速React Native應(yīng)用程序,而且從根本上改變了JavaScript的有效用途?!?/p>
Solid:專注于基本元素(Primitives)
Solid的創(chuàng)作者Ryan Carniato表示,Solid開(kāi)發(fā)人員可以期待2024年推出的SolidStart 1.0和Solid.js 2.0。SolidStart是一個(gè)元框架,意味著它建立在Solid.js框架之上。他說(shuō),這與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)。”
由于SolidStart仍處于測(cè)試階段,Carniato有機(jī)會(huì)基本上使用生態(tài)系統(tǒng)中已有的東西來(lái)使其更好。
“其中一個(gè)重要的部分是,我們現(xiàn)在使用Nitro而不是編寫(xiě)自己的部署適配器,Nitro還支持Nuxt框架,這使你能夠部署到所有不同的平臺(tái),” Carniato說(shuō)。
另一個(gè)例子是任何Solid路由器都將在SolidStart中起作用。
“這意味著對(duì)路由器的基礎(chǔ)部分進(jìn)行了很多更新,以使它們可以共同工作,但我對(duì)最終結(jié)果感到非常滿意,因?yàn)槲覀冃F(tuán)隊(duì)的志愿者需要維護(hù)的代碼量要少得多,并且它為開(kāi)發(fā)人員提供了很多靈活性和控制,“他說(shuō)?!八麄儾槐黄炔捎脝我坏慕鉀Q方案,這對(duì)我來(lái)說(shuō)非常重要,因?yàn)槊總€(gè)人都有自己的需求。正如我所說(shuō),如果構(gòu)建正確的組件并找出這些構(gòu)建塊是什么,人們可以做更多的事情?!?/p>
最終結(jié)果是一個(gè)“可互換”組件的元框架,不持有太多主觀意見(jiàn),他說(shuō)。Solid團(tuán)隊(duì)一直在思考在越來(lái)越多的元框架決定開(kāi)發(fā)人員使用什么的世界中,正確的基本元素對(duì)影響的問(wèn)題。
“對(duì)我來(lái)說(shuō),一直都是關(guān)于基本元素的構(gòu)建塊,非常注重工程,我認(rèn)為這也是它與眾不同的原因之一,”他說(shuō)。“我一直喜歡給予選擇,并且我認(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)的問(wèn)題,” Carniato說(shuō)。
他補(bǔ)充說(shuō),Solid試圖在控制和性能之間取得平衡。
“我們的社區(qū)中有很多熱情的人,非常關(guān)注性能的技術(shù)人員,關(guān)心控制的人,”他說(shuō)?!拔覀兾嗽S多真正想要控制構(gòu)建的每個(gè)部分的人?!?/p>
本文名稱:JavaScript前端框架2024年展望
文章位置:http://fisionsoft.com.cn/article/cdcoije.html


咨詢
建站咨詢
