vue路由实现模式
Vue 路由实现模式
Vue Router 是 Vue.js 的官方路由管理器,支持多种路由实现模式,主要包括 Hash 模式 和 History 模式。以下是两种模式的详细说明及实现方法。
Hash 模式
Hash 模式通过 URL 的哈希部分(#)实现路由切换,兼容性较好,无需服务器额外配置。
特点:
- URL 格式为
http://example.com/#/path。 - 哈希变化不会触发页面刷新,适合单页应用(SPA)。
- 兼容所有浏览器,包括不支持 HTML5 History API 的旧版本。
配置方法:
const router = new VueRouter({
mode: 'hash',
routes: [...]
});
注意事项:
- 服务器无需特殊配置,直接返回
index.html即可。 - 哈希部分不会被发送到服务器,仅由前端处理。
History 模式
History 模式利用 HTML5 History API(pushState、replaceState)实现无哈希的 URL,更接近传统页面路径。
特点:

- URL 格式为
http://example.com/path,更简洁。 - 需要服务器支持,避免直接访问子路由时返回 404。
- 依赖浏览器对 History API 的支持(现代浏览器均支持)。
配置方法:
const router = new VueRouter({
mode: 'history',
routes: [...]
});
服务器配置示例:
- Nginx:
location / { try_files $uri $uri/ /index.html; } - Apache:
RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]
注意事项:
- 直接访问子路由时,服务器需返回
index.html,由前端路由处理。 - 需确保服务器配置正确,否则会导致 404 错误。
选择建议
-
Hash 模式:

- 适用于简单项目或静态托管(如 GitHub Pages)。
- 无需服务器配置,兼容性最佳。
-
History 模式:
- 适用于需要美观 URL 且可控服务器配置的场景(如企业应用)。
- 需确保服务器支持,否则需回退到 Hash 模式。
扩展:抽象模式(Abstract)
在非浏览器环境(如 Electron、NativeScript)中,可使用 abstract 模式,路由变化不会修改 URL。
配置方法:
const router = new VueRouter({
mode: 'abstract',
routes: [...]
});
适用场景:
- 客户端应用无真实 URL 需求时(如桌面端或移动端混合开发)。






