Vue Router 新手指南:設置 404 錯誤頁面

更新日期: 2025 年 1 月 1 日

本文為 Django + Vue 前後端分離解析,第 25 篇

  1. 前後端分離的 404 錯誤處理:步驟指南
  2. 正常網頁與 API 接口:新手指南
  3. GraphQL 與 REST:理解新時代的 API 設計
  4. 為什麼自定義 404 頁面需要同時支持 API 和 HTML:新手指南
  5. 前後端分離中的路由與錯誤處理:新手指南
  6. 設計後端 API 的 404 錯誤處理:新手指南
  7. 前端與後端的 HTTP 請求與響應協議
  8. Django 中自定義 404 專案架構的最佳實踐
  9. 深入理解 Django 中的自定義 404 views 函數處理解析
  10. Django 的 handler404:自定義 404 錯誤頁面的核心
  11. Django 的 render 函數與 status 參數:為什麼重要?
  12. 使用 Accept 判斷請求格式:如何實現靈活的錯誤處理?
  13. 使用 Esbuild 搭建 Vue 開發環境的指南
  14. 新手入門:TailwindCSS 與 DaisyUI 的整合指南
  15. Django 靜態文件管理:static 與 staticfiles 完整指南
  16. 使用 WhiteNoise 簡化 Django 靜態文件管理:新手入門指南
  17. Vue 與 Django 整合:從編輯到部署的完整指南
  18. Django 與 Vue 的專案目錄與設計流程指南
  19. Django + Vue 前後端分離架構:後端路由渲染解析
  20. Vue 3 應用的主入口詳解:如何初始化應用
  21. 探索 Vue 應用的根組件:App.vue 的角色與設計
  22. Vue.js 單頁應用(SPA)邏輯與運作流程詳解
  23. 新手指南:使用 Axios 實現高效的 HTTP 請求
  24. 在 Vue 中處理 404 錯誤組件(component)設計:新手指南
  25. Vue Router 新手指南:設置 404 錯誤頁面 👈 所在位置

在 Web 應用開發中,404 錯誤頁面是必不可少的一部分。

它可以幫助用戶在訪問未知路徑時,提供友好的提示並引導他們返回正確的頁面。

本指南將通過一段簡單的 Vue Router 配置代碼,教你如何設置 404 錯誤頁面並理解相關的運作邏輯。


什麼是 Vue Router?

Vue Router 是 Vue.js 的官方路由管理工具,用於構建單頁應用程序(SPA)的路由系統。

它可以根據 URL 的變化動態加載不同的組件,實現無刷新頁面跳轉。


配置 404 錯誤頁面的完整代碼

以下是一段用於處理 404 錯誤頁面的路由配置代碼:

import { createRouter, createWebHistory } from "vue-router";
import NotFoundPage from "./components/NotFoundPage.vue";

const routes = [
  { path: "/:pathMatch(.*)*", component: NotFoundPage }, // 通配符路由
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;

分步解釋

引入必要的工具和組件

import { createRouter, createWebHistory } from "vue-router";
import NotFoundPage from "./components/NotFoundPage.vue";

1.1 createRouter

  • 作用:Vue Router 提供的核心 API,用於創建路由器實例,管理路由邏輯。
  • 功能:定義路徑、導航守衛、歷史模式等。

1.2 createWebHistory

  • 作用:設置 HTML5 History 模式
  • 特點:URL 更加簡潔(例如 /about),不會包含 #(如 /about#)。
  • 適用場景:適合現代的單頁應用程序,需伺服器支持配置。

1.3 NotFoundPage

  • 作用:導入自定義的 Vue 組件,作為 404 錯誤頁面。
  • 組件內容:用於顯示友好的錯誤提示,例如 “Page Not Found” 或返回首頁的鏈接。

定義路由表

const routes = [
  { path: "/:pathMatch(.*)*", component: NotFoundPage }, // 通配符路由
];

2.1 路由表的結構

  • 定義routes 是一個數組,包含多個路由對象。
  • 每個路由對象的屬性
    • path:匹配的 URL 路徑。
    • component:當路徑匹配時加載的 Vue 組件。

2.2 通配符路由

  • path: "/:pathMatch(.*)*"
    • 使用正則表達式匹配所有未定義的路徑。
    • :pathMatch 是一個動態參數,(.*)* 表示匹配多層嵌套路徑。
    • 例如:
      • /random-page:匹配 /random-page
      • /deep/nested/page:匹配 /deep/nested/page
  • 用於處理 404
    • 當用戶訪問的路徑未定義在路由表中時,這條通配符路由會被觸發。
    • 將未定義路徑引導到自定義的 404 錯誤頁面。

創建路由器實例

const router = createRouter({
  history: createWebHistory(),
  routes,
});

3.1 history

  • 作用:設置路由的歷史模式。
  • 常見選項
    • createWebHistory():使用 HTML5 History 模式。
    • createWebHashHistory():使用哈希模式,URL 帶有 #

3.2 routes

  • 作用:傳入定義的路由表。
  • 功能:讓路由器知道如何根據路徑動態加載對應的組件。

導出路由器實例

export default router;
  • 作用:將 router 導出,供其他文件(如 main.js)使用。
  • 示例: 在 main.js 文件中引入並注冊到 Vue 應用:
import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";

const app = createApp(App);

app.use(router); // 注冊路由器
app.mount("#app");

404 錯誤頁面的運作邏輯

  1. 用戶訪問某個 URL。
  2. Vue Router 嘗試在路由表中匹配該路徑。
  3. 如果沒有找到匹配的路徑:
    • 觸發通配符路由。
    • 加載 NotFoundPage 組件。
  4. 在 404 頁面顯示錯誤提示。

為什麼選擇 HTML5 History 模式?

  1. URL 更簡潔:無需 # 符號,URL 更像傳統網站。
  2. SEO 友好:更適合搜索引擎優化(SEO)。
  3. 伺服器支持:需要伺服器配置以處理返回 index.html

應用場景

  1. 處理未知路徑
    • 用戶輸入錯誤的 URL 時顯示自定義錯誤信息,而非空白頁或瀏覽器默認的 404 錯誤。
  2. 提升用戶體驗
    • 提供返回首頁的鏈接,幫助用戶快速導航到正確的頁面。

結語

本文介紹了如何使用 Vue Router 配置 404 錯誤頁面,並詳細解釋了每個部分的邏輯和功能。

通過這種方式,你可以為應用添加一個友好的錯誤處理機制,讓用戶在訪問未知路徑時獲得更好的體驗。

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *