表现形式的区别
- Hash模式: music.163.com/#/playlist?…
- History: music.163.com/playlist/22…
原理的区别
-
Hash 模式是基于锚点,以及onhashchange事件
- URL中 # 后面的内容作为路径地址
- 监听hashchange 事件
- 根据当前路由地址找到当前对应组件重新渲染
-
History 模式是基于HTML5中的Histroy API, IE10以后才支持
- 通过histroy.pustState()、histroy.replaceState() 方法改变地址栏
- 监听popstate 事件
- 根据当前路由地址找到对应的组件进行重新渲染