- url 地址表现不同,hash模式有#号, history 模式没有
实现原理不同
- hash 模式是通过改变hash并监听 hashchange 事件
history 模式是基于最新的HTML5里面 history 相关的api 进行的一些操作
history.pushstate()
history.replacestate()
window.onpopstate 监听浏览器的前进与后退的行为
- 兼容不同
- hash模式都可以兼容
- history 模式只能兼容到IE10 及以上
- ps: vue兼容性, 是只能兼容到 ie8
- history 模式会出现 404 找不到页面这种问题,需要后端配置相关的处理才行,而hash 模式没有这个问题
- history 模式时,重定向会有些问题,需要页面的名字 叫 index.html 才行