表现形式的区别
-
Hash 模式
-
History 模式
原理的区别
-
Hash模式是基于锚点,以及onhashchange事件
-
Hostory模式是基于HTML5中的History API
History.pushState() IE10以后才支持
history.replaceState()
History 需要服务器的支持
单页应用中,服务端不存在 http://www.testurl.com/login 这样的地址会返回找不到该页面
在服务端应该除了静态资源外都返回单页应用的 index.html
Hash模式
-
URL中#后面的内容作为路径地址
-
监听hashchange事件
-
根据当前路由地址找到对应组件重新渲染
History模式
-
通过History.pushState()方法改变地址栏
-
监听popstate事件
-
根据当前路由地址找到对应组件重新渲染