hash
1、由于 hash 值变化不会导致浏览器向服务器发出请求,而且 hash 改变会触发 onhashchange 事件(hashchange只能改变 # 后面的url片段);虽然hash路径出现在URL中,但是不会出现在HTTP请求中,对后端完全没有影响,因此改变hash值不会重新加载页面
2、触发 onhashchange
属性事件当URL哈希改变时。onhashchange
属性是HTML5中的新特性
history
1、history必须要和后端保持一致,路由全覆盖,否则报404
2、pushState()和replaceState()可以用于浏览器的历史记录栈,通过back、forward、go可以对当前浏览器进行修改,当他们发生修改的时候,尽管url变化了,但是不会立即向后端服务器发送请求,除非点击刷新
3、history404报错解决方案:后台使用nginx重定向到对应页面