区别:
hash模式:
1.采用的是window.onhashchange事件实现。
2.可以实现前进 后退 刷新。
3.比如这个URL:http://www.abc.com/#/hello, hash 的值为#/hello。
它的特点在于:hash 虽然出现URL中,但不会被包含在HTTP请求中, 对后端完全没有影响,因此改变hash不会重新加载页面
history模式:
1.采用的是利用了HTML5 History Interface 中新增的pushState() 和replaceState() 方法。
2.可以前进、后退,但是刷新有可能会出现404的报错
3.前端的url必须和实际向后端发起请求的url 一致,如http://www.abc.com/book/id 。 如果后端缺少对/book/id 的路由处理,将返回404错误。