React 18 的計劃
2021 年 6 月 8 日,由 Andrew Clark、Brian Vaughn、Christine Abernathy、Dan Abramov、Rachel Nabors、Rick Hanlon、Sebastian Markbåge 和 Seth Webster 發布
React 團隊很興奮地分享一些更新
- 我們已經開始著手進行 React 18 的發布工作,這將是我們下一個主要版本。
- 我們成立了一個工作小組,協助社群逐步採用 React 18 的新功能。
- 我們已經發布了 React 18 Alpha 版本,讓函式庫作者可以試用並提供回饋。
這些更新主要針對第三方函式庫的維護者。如果您正在學習、教學或使用 React 建立面向使用者的應用程式,您可以安心地忽略這篇文章。但如果您感到好奇,歡迎追蹤 React 18 工作小組的討論!
React 18 的新功能
React 18 發布時,將包含開箱即用的改進(例如 自動批次處理)、新的 API(例如 startTransition
),以及一個 新的串流伺服器渲染器,內建支援 React.lazy
。
這些功能得益於我們在 React 18 中新增的一種新的選擇性機制。它被稱為「並行渲染」,它允許 React 同時準備多個版本的 UI。這個變化主要在幕後進行,但它開啟了新的可能性,可以提高應用程式的實際和感知效能。
如果您一直在關注我們對 React 未來的研究(我們並不期望您這樣做!),您可能聽說過一種叫做「並行模式」的東西,或者它可能會破壞您的應用程式。為了回應社群的這些回饋,我們重新設計了逐步採用的升級策略。並行渲染將不再是「全有或全無」的「模式」,而只會啟用由其中一項新功能觸發的更新。在實務中,這意味著您可以在不重寫程式碼的情況下採用 React 18,並按照自己的步調試用新功能。
逐步採用策略
由於 React 18 中的並行是選擇性加入的,因此對组件行為沒有重大的開箱即用重大變更。您可以以最少或沒有變更應用程式程式碼的情況下升級到 React 18,其工作量與典型的 React 主要版本發布相當。根據我們將多個應用程式轉換為 React 18 的經驗,我們預計許多使用者將能夠在一個下午內完成升級。
我們已成功將並行功能發布到 Facebook 的數萬個组件中,根據我們的經驗,我們發現大多數 React 组件「直接就能用」,無需額外變更。我們致力於確保整個社群都能順利升級,因此我們今天宣布成立 React 18 工作小組。
與社群合作
我們正在嘗試這個版本的新做法:我們邀請了來自 React 社群的專家、開發人員、函式庫作者和教育工作者小組參與我們的 React 18 工作小組,以提供回饋、提問和共同協作發布。我們無法邀請所有我們想要的人加入這個最初的小組,但如果這個實驗成功,我們希望未來會有更多人加入!
React 18 工作小組的目標是讓生態系統做好準備,使現有的應用程式和函式庫能夠順利、逐步地採用 React 18。 這個工作小組位於 GitHub 討論區,並且公開閱覽。工作小組成員可以在此提供意見、提問和分享想法。核心團隊也會使用這個討論區存放庫來分享我們的研究成果。隨著穩定版本的發布日期越來越近,任何重要資訊也會發布在此部落格上。
如需更多關於升級到 React 18 的資訊,或關於此版本的其他資源,請參閱 React 18 公告文章。
進入 React 18 工作小組
任何人都可以閱讀 React 18 工作小組存放庫 中的討論。
由於我們預期會有大量的人湧入工作小組,因此只有受邀的成員才能建立或評論主題。然而,這些主題對大眾完全公開,因此每個人都能獲得相同的資訊。我們相信這是在為工作小組成員創造高效工作環境與維護社群透明度之間取得良好平衡的方式。
一如既往,您可以將錯誤報告、問題和一般意見回饋提交到我們的 問題追蹤器。
如何試用 React 18 Alpha 版本
新的 Alpha 版本會定期使用 @alpha
標籤發布到 npm。這些版本是使用我們主要存放庫中的最新提交建置的。當一個功能或錯誤修正被合併後,它會在下一個工作日的 Alpha 版本中出現。
Alpha 版本之間可能會有重大的行為或 API 變更。請記住,不建議將 Alpha 版本用於面向用戶的正式應用程式。
React 18 預計發布時程
我們沒有排定具體的發布日期,但我們預計 React 18 需要幾個月的時間來收集意見回饋和進行迭代,才能準備好供大多數正式應用程式使用。
- 函式庫 Alpha 版本:今天 verfügbar
- 公開 Beta 版本:至少幾個月後
- 候選發布版本 (RC):Beta 版本發布後至少幾週
- 正式版本:RC 版本發布後至少幾週
關於我們預計發布時程的更多詳細資訊,請參閱 工作小組。當我們更接近公開發布日期時,我們會在此部落格上發布更新。