客戶端導航

Link 元件能在同一個 Next.js 應用中實現客戶端導航 (Client-Side Navigation) 的頁面切換。

客戶端導航意味著頁面轉換是_透過 JavaScript 執行_,這比瀏覽器預設的導航方式更快速。

以下是一個簡單的驗證方法:

  • 使用瀏覽器的開發者工具將 <html>background CSS 屬性改為 yellow
  • 點擊連結來回切換兩個頁面。
  • 你會發現黃色背景在頁面轉換時仍然保持。

這表示瀏覽器_沒有_載入完整頁面,客戶端導航正在運作。

連結

如果你使用 <a href="…"> 而非 <Link href="…"> 並執行相同操作,點擊連結時背景色會被清除,因為瀏覽器會執行完整重新載入。

程式碼分割與預取 (Code splitting and prefetching)

Next.js 會自動進行程式碼分割 (Code splitting),因此每個頁面僅載入該頁面所需的程式碼。這表示當首頁被渲染時,其他頁面的程式碼最初並不會被載入。

這確保即使你有數百個頁面,首頁仍能快速載入。

僅載入請求頁面的程式碼也意味著頁面之間是隔離的。如果某個頁面發生錯誤,應用程式的其他部分仍能正常運作。

此外,在 Next.js 的生產環境 (production) 版本中,當 Link 元件出現在瀏覽器視窗內時,Next.js 會自動在背景預取 (prefetch) 連結頁面的程式碼。當你點擊連結時,目標頁面的程式碼早已在背景載入完成,頁面轉換幾乎是瞬間完成!

總結

Next.js 透過程式碼分割、客戶端導航和生產環境中的預取 (prefetching) 功能,自動為你的應用程式提供最佳效能優化。

你只需在 pages 目錄下建立檔案作為路由,並使用內建的 Link 元件,無需任何額外的路由函式庫。

你可以在 next/link 的 API 參考文件 中了解更多關於 Link 元件的資訊,並在路由文件 中了解路由的相關知識。

注意: 如果你需要連結到 Next.js 應用程式_外部_的頁面,直接使用 <a> 標籤即可,無需使用 Link

On this page