前端路由技术——Hash模式&History模式区别
-
hash模式是通过监听hashChange事件来实现的,history模式是通过pushstate方法+popstate事件来实现的
-
hash模式url带#号,history模式不带#号
-
hash兼容IE8以上,history兼容IE10以上
-
hash 值变化不会导致浏览器向服务器发出请求,history 模式改变 url 的方式会导致浏览器向服务器发送请求,因此需要后端配合将所有访问都指向index.html,否则在匹配不到静态资源时会报404错误
注:为什么hash 值变化不会导致浏览器向服务器发出请求?
因为hashchange只能改变#后面的url片段;虽然hash路径出现在url中,但是不会出现在http请求中,对后端完全没有影响,因此改变hash值不会重新加载页面