在Vue等前端框架中,路由主要有两种模式,以下是具体介绍:
- hash 模式(哈希模式)
• 原理:利用 URL 中的 # 符号及后面的内容(哈希值)作为路由标识,例如 example.com/#/home,哈希值的…
• 特点:
◦ 兼容性好:支持所有浏览器(包括低版本),因为哈希变化属于浏览器前端行为,不会向服务器发送请求。
◦ URL 显示:URL 中包含 #,不够美观。
◦ 服务器配置简单:无需额外配置,服务器直接返回首页即可,前端通过监听哈希变化(hashchange 事件)处理路由。
- history 模式(历史模式)
• 原理:利用浏览器的 History API(pushState、replaceState 等方法)修改 URL,例如 example.com/home,URL 中没有 #,更接近传统网页 URL。
• 特点:
◦ URL 美观:无 #,更符合用户习惯和 SEO 需求。
◦ 服务器需配置:由于 URL 不再包含哈希,当直接访问深层路由(如 example.com/home)时,服务器需… 重定向,将所有请求指向首页,否则会返回 404 错误(例如 Nginx 中配置 try_files uri/ /index.html)。
◦ 兼容性:依赖浏览器 History API,IE9 及以下不支持,需做降级处理。
两种模式的选择建议
• 优先使用 history 模式:若项目需要更友好的 URL 或考虑 SEO,且无需兼容低版本浏览器,建议用 history 模式,但需配置服务器重定向。
• 使用 hash 模式:若项目需要兼容旧浏览器,或不想配置服务器,hash 模式更简单直接。