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()` 来选择不同的路由模式。然后,可以根据具体需求进行路由配置。