Vue 路由提供了三種常見的模式:哈希模式(Hash Mode)、歷史模式(History Mode)和抽象模式(Abstract Mode)。
1. 哈希模式(Hash Mode):
在哈希模式下,路由路徑會被設置為 URL 的哈希部分(即 # 后面的部分)。哈希模式不會將路由路徑發送到服務器,因此在單頁應用中非常適用。Vue 默認采用哈希模式。
2. 歷史模式(History Mode):
歷史模式使用瀏覽器的歷史 API(`pushState` 和 `replaceState`)來實現路由導航。它會將路由路徑直接顯示在 URL 中,沒有哈希部分。例如:`http://example.com/home`。由于歷史模式會將路由發送到服務器,因此需要在服務器端進行配置,以確保在刷新頁面或直接訪問路由時,能夠正確返回應用的入口頁面。可以通過設置 `mode: 'history'` 來啟用歷史模式。
3. 抽象模式(Abstract Mode):
抽象模式是一種不依賴于瀏覽器 API 的模式,主要用于非瀏覽器環境,例如服務器渲染(Server-Side Rendering)。在抽象模式下,路由不會真正映射到 URL,而是由應用自己處理。
要在 Vue Router 中選擇一種路由模式,可以在創建 Router 實例時進行配置。例如:
import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router';
const router = createRouter({
history: createWebHashHistory(), // 使用哈希模式
// 或者
// history: createWebHistory(), // 使用歷史模式
routes: [
// 路由配置
]
});
在上面的代碼中,通過 `createWebHashHistory()` 或 `createWebHistory()` 來選擇不同的路由模式。然后,可以根據具體需求進行路由配置。