首頁 > web前端 > js教程 > Next.js 中的路由 – 如何在您的下一個應用程式中使用 App Router

Next.js 中的路由 – 如何在您的下一個應用程式中使用 App Router

Susan Sarandon
發布: 2025-01-17 04:33:12
原創
854 人瀏覽過

Routing in Next.js – How to Use App Router in Your Next Apps

Next.js 14 的 App Router 憑藉著 app/ 目錄中基於檔案的路由系統徹底改變了路由管理。這種方法可以促進更好的應用程式結構、模組化和效能。 本指南概述了 Next.js 專案中有效的 App Router 實作。


了解應用程式路由器

App Router 重新定義了路由定義。 目錄結構直接對應到 URL 路徑。 /app 中的資料夾成為路由,簡化了嵌套佈局、路由分組和資料獲取,尤其是在大型應用程式中。

設定應用程式路由器

  • 建立 Next.js 專案(如果需要):npx create-next-app@latest
  • App Router 在 Next.js 14 中預設透過 /app 目錄啟用。無需額外配置。

基本路由

/app內的檔案和資料夾會自動對應到路線:

<code>app/
 ├── page.tsx           # Homepage ("/")
 ├── about/
 │    └── page.tsx      # About page ("/about")
 └── blog/
      ├── page.tsx      # Blog index ("/blog")
      └── [slug]/
           └── page.tsx # Dynamic blog posts ("/blog/[slug]")</code>
登入後複製
  • 靜態路線: app/about/page.tsx 對應到 /about
  • 動態路由:方括號 ([]) 定義動態段。 app/blog/[slug]/page.tsx 處理類似 /blog/my-post.
  • 的路線

佈局和巢狀

App Router 簡化了佈局建立和重複使用。

建立版面:

資料夾中的 layout.tsx 檔案適用於該資料夾中的所有頁面和元件。

<code>app/
 ├── layout.tsx         # App-wide layout
 ├── about/
 │    ├── layout.tsx    # About page layout
 │    └── page.tsx      # About page content</code>
登入後複製
<code class="language-javascript">// app/layout.tsx
export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <h1>My App</h1>
        {children}
      </body>
    </html>
  );
}</code>
登入後複製

巢狀路由與版面:

佈局嵌套,在嵌套路由之間提供一致的 UI。

<code>app/
 ├── dashboard/
 │    ├── layout.tsx         # Dashboard layout
 │    ├── page.tsx           # Dashboard home ("/dashboard")
 │    └── settings/
 │         └── page.tsx      # Dashboard settings ("/dashboard/settings")</code>
登入後複製

/dashboard/ 版面配置適用於 /dashboard/dashboard/settings

路線組

路由組使用帶括號的資料夾來組織程式碼,而無需更改 URL。

<code>app/
 ├── (dashboard)/
 │    ├── profile/
 │    │     └── page.tsx     # "/profile"
 │    ├── settings/
 │    │     └── page.tsx     # "/settings"</code>
登入後複製

/profile/settings 分組在 (dashboard) 下以進行程式碼組織。

捕捉所有路線

處理檔案名稱中帶有 ... 的多個 URL 片段:[...]/page.tsx 擷取 /blog/a/b/c.

錯誤和載入狀態

Next.js 14 使用 error.tsxloading.tsx 進行錯誤處理和載入路由內的指示器。

資料取得

使用 async/await 或鉤子直接在元件中取得伺服器端資料。

<code class="language-javascript">// app/dashboard/page.tsx
export default async function DashboardPage() {
  const data = await fetch('https://api.example.com/data').then(res => res.json());
  return <div>{JSON.stringify(data)}</div>;
}</code>
登入後複製

伺服器操作

使用伺服器操作處理元件內的伺服器端邏輯(例如表單提交)。

部署

部署 App Router 應用程式與標準 Next.js 部署相同。 強烈建議使用 Vercel 以獲得最佳效能。

Next.js 14 App Router 提供了一種靈活的模組化方法,可以使用更簡潔的程式碼建立可擴展的高效能應用程式。 本指南為在專案中利用其功能奠定了基礎。

以上是Next.js 中的路由 – 如何在您的下一個應用程式中使用 App Router的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板