Next.js 是一個功能豐富的框架,適用於各種類型的 Web 應用程式,從單頁應用程式到靜態網站。它提供了許多功能和工具,以簡化開發過程並提高性能。如果你正在考慮使用 React 來構建 Web 應用程式,Next.js 是一個強大的選擇。
Next.js 提供了簡單而強大的路由系統,可以幫助你建立現代 Web 應用程式。下面是一些關於 Next.js 路由的相關應用和基本概念:
自動路由:Next.js 有一個自動路由系統,它根據 pages
目錄中的文件結構自動生成路由。例如,如果你在 pages
目錄下創建一個 about.js
文件,它將自動映射到 /about
路徑。
動態路由:Next.js 支援動態路由,這意味著你可以通過在文件名中使用中括號 []
來定義動態路由參數。例如,pages/post/[id].js
將允許你訪問不同的帖子,並將 id
動態傳遞到頁面中。
嵌套路由:你可以在 pages
目錄下創建子目錄,以實現嵌套路由。這可用於建立複雜的頁面結構。例如,pages/blog/index.js
和 pages/blog/post/[id].js
可以建立一個博客應用程式,其中有帖子列表和單個帖子頁面。
Link 元件:Next.js 提供了一個 <Link>
元件,它使你能夠在應用程式中實現客戶端導航。這可以幫助你在應用程式中輕鬆地連接不同的頁面。
import Link from 'next/link';
<Link href="/about">
<a>About</a>
</Link>
使用 useRouter
Hook:你可以使用 useRouter
Hook 來獲取路由對象,並在組件中訪問路由相關信息。例如,你可以訪問當前的路由路徑和查詢參數。
import { useRouter } from 'next/router';
function MyComponent() {
const router = useRouter();
return <p>Current path: {router.pathname}</p>;
}
訪問路由參數:如果你使用動態路由,你可以使用 useRouter
Hook 或 router.query
來訪問路由參數。例如,對於 pages/post/[id].js
,你可以訪問 router.query.id
來獲取 id
參數的值。
處理 404 錯誤:Next.js 自動處理 404 錯誤,如果路由無效,它將顯示一個默認的 404 頁面。你也可以自定義 404 頁面,通過在 pages
目錄下創建一個 404.js
文件。
使用路由事件:Next.js 提供一個事件系統,你可以使用它來註冊路由相關事件,例如路由變化時的回調。這允許你執行自定義邏輯,例如在路由切換時加載數據。
import { useRouter } from 'next/router';
function handleRouteChange(url) {
// 執行自定義邏輯
}
function MyComponent() {
const router = useRouter();
// 註冊路由變化事件
router.events.on('routeChangeStart', handleRouteChange);
return <p>Current path: {router.pathname}</p>;
}
Next.js 的路由系統是簡單而功能豐富的,它提供了很多有用的功能,使你能夠更容易地建立現代 Web 應用程式。無論是單頁應用程式、多頁應用程式、動態路由還是嵌套路由,Next.js 都能滿足不同應用程式的需求。