1.hash模式,主要是hashHistory
原理:
- hash(“#”)符号的本来作用是加在URL中指示网页中的位置
- hash虽然出现在URL中,但不会被包括在HTTP请求中。它是用来指导浏览器动作的,对服务器端完全无用,因此,改变hash不会重新加载页面
- 每一次改变hash(window.location.hash),都会在浏览器的访问历史中增加一个记录
- 改变hash可以监听到hashchange事件
2.history模式,主要利用HTML5History
- 我们主要利用这个HTML5History来操作浏览器历史记录栈,
- 主要方法有back(), forward(), go()来读取浏览器路由历史并控制跳转
- HTML5新增pushState(), replaceState()2个方法来修改历史信息,调用这两个方法修改历史信息后,虽然当前URL改变了,但浏览器不会立即发送请求该URL,这就满足单页面应用”更新视图但不重新请求页面“的需求