Next.js 剛剛投下了一個改變遊戲規則的重磅炸彈,在Next.js 大會之前發布了Next.js 15 的穩定版本——這絕對是瘋狂的! ?
以下是 Next.js 15 中包含的一些令人興奮的新更新和功能:
- 使用 @next/codemod CLI 改進升級:Next.js 15 包含一個新的 codemod CLI,可以更輕鬆地升級到最新的 Next.js 和 React 版本。 CLI 更新相依性、顯示可用的程式碼模組並提供應用程式指南。
- 非同步請求 API:依賴請求特定資料(例如標頭、cookie、params 和 searchParams)的 API 已轉換為非同步。此變更會影響 cookie、標頭、draftMode、params(在各種上下文中)和 searchParams 等 API。這是一個重大更改,但可以使用 codemod 來幫助遷移。
- 快取語意的變更:Next.js 15 變更了取得請求、GET 路由處理程序和客戶端路由器快取的預設快取行為。現在預設情況下這些是不緩存的。如果需要,您可以選擇快取。
- 取得請求現在使用 no-store 作為預設快取選項,這表示預設不會快取它們。您可以透過將快取選項設定為強制快取來選擇快取。
- GET 路由處理程序預設也不被快取。您可以選擇使用靜態路由配置選項進行快取。
- 預設情況下,客戶端路由器快取不再快取頁面元件。您可以透過在 next.config.ts 中設定 staleTime 來還原到先前的行為。
- React 19 支援:Next.js 15 支援 React 19,包含實驗性的 React 編譯器。
- App Router 使用 React 19 RC,而 Pages Router 則保持對 React 18 的向後相容性。由於潛在的不一致,不建議在同一應用程式中使用 React 18 作為頁面路由器和 React 19 作為應用程式路由器。
- React 編譯器旨在透過減少手動記憶來簡化程式碼,但它仍處於實驗階段,可能會導致建置時間變慢。
- 穩定的 Turbopack 開發:Turbopack,新的基於 Rust 的構建系統,現在在開發模式下穩定(next dev --turbo)。它在伺服器啟動、快速刷新和初始路由編譯方面提供了顯著的效能改進。
- 靜態路由指示器:這個新的視覺指示器有助於在開發過程中識別靜態和動態路由。
- unstable_after API:unstable_after API 允許在回應完成串流後執行程式碼,這對於不需要阻止使用者的任務(例如日誌記錄和分析)特別有用。
- instrumentation.js API:此 API 允許開發者監控 Next.js 伺服器生命週期事件,這有助於效能追蹤和錯誤分析。
- 使用 :新的
- next.config.ts 中的 TypeScript 支援:Next.js 15 支援 TypeScript next.config.ts 文件,為設定選項提供類型安全性和自動完成功能。
- 自架改進:Next.js 15 為自架提供了對Cache-Control 標頭的更多控制,透過自動使用Sharp 簡化了圖像優化,並包含有關自託管的演示和教學影片.
- 增強的伺服器操作安全性:Next.js 現在消除了建置過程中未使用的伺服器操作,並利用不可預測的 ID 進行客戶端引用,從而增強了安全性。
- 捆綁外部套件:Next.js 15 提供了更一致的設定選項,用於跨應用程式和頁面路由器捆綁外部套件。 serverExternalPackages 選項允許統一管理。
- ESLint 9 支援:Next.js 15 引入了對 ESLint 9 的支持,同時保持與 ESLint 8 的向後相容性。更新還包括在下一個 lint 中刪除已棄用的選項以及升級到 eslint-plugin-react-掛鉤到版本 5.0.0。
- 開發與建置改進:
- 改進了伺服器元件熱模組替換 (HMR),以增強本地開發效能。
- 透過優化的渲染流程和工作人員之間共享的獲取緩存,App Router 中的靜態生成速度更快。
- 為進階用例引入實驗性靜態產生控制,但需要謹慎,因為它們可能會導致資源消耗增加。
- 雜項:
- 跨不同領域的突破性變更和改進,例如下一個/圖像、中間件、下一個/字體、快取、配置選項、速度洞察、網站地圖、動態路線、重新驗證等等。
- 元資料處理、tree-shaking、平行路由、錯誤處理、預取和其他幾個方面的整體改進。
問題出現了,“Next.js 15 版本如何解決伺服器端功能無意暴露的問題?”
Next.js 15 版本引入了兩項增強功能,以解決伺服器端功能無意暴露的問題,特別是伺服器操作:
- 死程式碼消除:應用程式中未使用的伺服器操作將在下一個建置過程中自動刪除。這可以防止他們將自己的 ID 暴露給客戶端 JavaScript 套件並建立公共端點。
- 安全操作 ID:Next.js 15 為伺服器操作產生不可猜測的、不確定的 ID,使攻擊者很難猜測並直接存取它們。這些 ID 會在建置之間定期重新計算,以進一步增強安全性。
要注意的是,這些措施並不能完全消除伺服器操作暴露的風險。開發人員仍應將伺服器操作視為公共 HTTP 端點,並實施適當的安全措施來保護敏感資料和功能。
以上是NextJs 穩定版來了:有什麼新功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!