React 19 現已推出,帶來了大量新功能、改進和突破性變更。此版本重新定義了開發人員處理狀態管理、表單和伺服器端渲染的方式,同時棄用了舊版 API。如果您打算升級,請繫好安全帶,踏上變革之旅。本指南將引導您了解 React 19 的亮點,並提供確保順利過渡的提示。
startTransition API 現在支援非同步函數,稱為「操作」。操作可以管理狀態更新、處理 fetch() 等副作用,並包含錯誤處理。它們透過協調狀態更新和 UI 渲染來簡化轉換。
新的 useActionState 鉤子 透過提供對 Action 狀態(包括掛起狀態和最終狀態)的存取來補充這一點。它接受用於粒度控制的減速器,使其成為表單互動和複雜狀態流的重要工具。
useOptimistic 讓開發人員能夠在轉換過程中設定臨時狀態更改,從而提供更流暢的使用者體驗。非同步操作完成後,狀態會自動恢復或更新。
React 19 引入了 use API,它允許在渲染期間讀取 Promise 或上下文。這可以簡化伺服器資料擷取工作流程,但存在只能在渲染函數中呼叫的限制。
您現在可以直接將 refs 作為 props 傳遞,從而無需使用forwardRef。此變更簡化了元件構成,並使引用的使用更加直觀。
Suspense 現在支援同級預熱,當同級掛起時立即提交後備組件。此增強功能提高了資料密集型應用程式的效能和使用者體驗。
React 中的表單透過 ,能夠更好地與 useFormStatus 整合。提交表單會自動重置不受控制組件的狀態。
React 19 原生支援渲染文檔元數據,例如
您現在可以在元件樹中的任何位置渲染非同步腳本。 React 處理排序和重複資料刪除,簡化第三方腳本整合。
prerender 和 prerenderToNodeStream API 透過支援 Node.js 等流環境來增強伺服器端渲染 (SSR)。這些 API 在生成 HTML 之前等待資料加載,使 SSR 更加健壯。
伺服器元件現已穩定,允許程式庫將 React 19 作為對等依賴項。這與全端 React 架構保持一致,並支援與 Next.js 等框架無縫整合。
JSX 轉換需求
新的 JSX 轉換在 React 19 中是強制性的。這使得像 refs 這樣的功能能夠作為 props 並提高整體性能。
錯誤處理更改
未捕獲的錯誤現在報告給 window.reportError,而邊界捕獲的錯誤則透過 console.error 記錄。 onUncaughtError 和 onCaughtError 等新方法允許自訂。
刪除的 API
刪除了 UMD 版本
不再支援 UMD 建構。使用基於 ESM 的 CDN 來使用腳本標籤,例如 esm.sh。
React 18.3 引入了針對 React 19 中刪除的 API 的棄用警告。此中間步驟有助於在全面升級之前識別潛在問題。
使用 React codemods 來自動執行重複更新,例如重構已棄用的 API 和調整 TypeScript 類型。
React 19 包含更嚴格的 TypeScript 類型。例如:
重構您的程式碼以與這些更新保持一致。
React 19 是一次重大飛躍,改善了開發人員體驗,同時為現代應用程式提供了強大的功能。無論您對非同步操作、改進的 Suspense 或伺服器端渲染增強感到興奮,此版本都包含可協助開發人員建立更快、更具彈性的應用程式的功能。
準備好潛水了嗎?從 React 19 升級指南開始,探索完整的發行說明。
編碼愉快! ?
以上是探索 React 功能、棄用和重大更改的詳細內容。更多資訊請關注PHP中文網其他相關文章!