在開發 React 應用程式時,我們會利用 react-router-dom 來做路由控制,不過,當使用者輸入一個不存在的路徑時,預設情況下的頁面不會顯示任何內容,可能讓使用者不明白目前的狀況。
因此,通常會設置一個 404 NotFound 頁面,提醒使用者該路徑不存在,並提供返回首頁或其他導覽的方式。
在 React 這類的單頁應用程式 ( SPA, Single Page Application ) 中,所有路由請求通常都會先被導向 index.html,再由前端的 React Router 來決定要呈現哪個頁面。
因此,前端需要模擬一個「兜底路由」,來處理使用者輸入不存在路徑的情況。
和傳統伺服器端的 404 不同:
這個元件會在使用者輸入不存在的網址時顯示
NotFound.js
import { Link } from "react-router-dom"
export default function NotFound(){
    return (
        <div>
            <h2>找不到頁面</h2>
            <p>回到<Link to ="/">首頁</Link></p>
        </div>
    )
}
App.js
import NotFound from "./NotFound";
<Route path="*" element={<NotFound />}></Route>
path="*":代表「配對所有未定義的路由」/ → 正常進入首頁/blogs/1、/blogs/2、/blogs/3 → 進入 BlogDetails/不存在的路徑 → 進入到 NotFound 頁面瀏覽器執行畫面
path="*" 做兜底