hash模式:
在浏览器中符号“#”,#以及#后面的字符称之为hash,
用window.location.hash读取;
特点:hash虽然在URL中,但不被包括在HTTP请求中;用来指导浏览器动作
,对服务端安全无用,hash不会重加载页面。
hashchange事件来监听 URL 的变化
hash 模式下,即使没有做到对路由的全覆盖,也不会返回 404 错误。
会覆盖锚点定位元素的功能
history模式:
history采用HTML5的新特性;且提供了两个新方法:
pushState(),replaceState()
可以对浏览器历史记录栈进行修改,以及popState事件的监听到状态变更。
history 模式下,前端的 URL 必须和有对应的,否则404。Vue-Router 官网里如此描述:“不过这种模式要玩好,还需要后台配置支持……所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。”