Vue Router 是 Vue.js 官方的路由管理器,用于構(gòu)建單頁應(yīng)用程序(SPA)的路由功能。Vue Router 支持以下幾種路由模式:
1. 哈希模式(Hash Mode):使用 URL 中的 hash(#)來模擬路由,即將路由信息存儲(chǔ)在 URL 的 hash 中。在 Vue Router 中,默認(rèn)使用的就是哈希模式,例如 `http://example.com/#/home`。
2. 歷史模式(History Mode):使用瀏覽器的 History API 來管理路由,可以在不重新加載頁面的情況下修改 URL。歷史模式通過使用 HTML5 的 History API 將路由信息存儲(chǔ)在瀏覽器的歷史記錄中,從而實(shí)現(xiàn)前端路由。在歷史模式下,URL 中不再有 hash,例如 `http://example.com/home`。
3. Abstract 模式:Abstract 模式是用于非瀏覽器環(huán)境的路由模式,例如在 Node.js 服務(wù)端渲染(SSR)中使用。
默認(rèn)情況下,Vue Router 使用哈希模式,因?yàn)樗诟鞣N環(huán)境下都具備良好的兼容性,而且不需要服務(wù)器端的配置。如果希望使用歷史模式,可以在創(chuàng)建 Vue Router 實(shí)例時(shí)通過配置 `mode: 'history'` 來啟用。例如:
```javascript
const router = new VueRouter({
mode: 'history',
routes: [...]
})
```
使用哈希模式時(shí),Vue Router 會(huì)自動(dòng)在 URL 中添加 `#` 符號(hào),并通過監(jiān)聽 `hashchange` 事件來實(shí)現(xiàn)路由的切換。而在歷史模式下,需要服務(wù)器配置來支持 URL 的重寫,以防止直接訪問路由時(shí)出現(xiàn) 404 錯(cuò)誤。
選擇使用哪種路由模式,可以根據(jù)具體的項(xiàng)目需求和部署環(huán)境來決定。哈希模式在兼容性和部署上更加簡(jiǎn)單,但 URL 中帶有 `#` 符號(hào)可能不太美觀。歷史模式則可以去除 `#` 符號(hào),使 URL 更加友好,但需要服務(wù)器配置支持。