Vue中路由模式有两种:history 和 hash。
-
Hash 模式
Hash 模式,比较老的浏览器也支持,即把路径后面加一个 # 符号和一个字符串,这个字符串就是当前路由的路径。
路由地址设为 hash 锚点值的形式,当井号
#后面的路径发生变化时,浏览器并不会重新发起请求,而是会触发hashchange事件。http://localhost:8080/#/home优点:
- 兼容性更好。可以兼容到 IE8。
缺点:
- URL 不够美观。
- 效果相对简陋。
-
History 模式
History 模式充分发挥了 H5 API 的优势,即通过 history.pushState() 接口改变 URL,同时页面不刷新,界面效果更佳。
路由地址不再以 # 开头,当 URL 发生改变时,页面不会重新加载。
http://localhost:8080/home优点:
- URL 显得更加简洁美观
- 可以使用 H5 的 History API 管理浏览器的历史记录,提供更好的用户体验。
缺点:
- 兼容性差,无法兼容到 IE8 及其以下版本,若要支持 IE8 及其以下版本则必须使用 hash 模式
- 刷新页面或直接访问 URL 时,服务器需要配置支持,否则会返回 404 错误。
总的来说,两者的实现方式不同,Hash 模式是通过改变 URL 中的 hash 来实现前端路由,History 模式是通过改变浏览器的 History Stack 中的条目来实现前端路由。在实际的开发中,应该根据实际需求来选择路由模式。