第一种 hash 模式
后面带#号
http://xx.xxx.x.xxx:8080/#/index
切换路由,只改变#后面的值,就可以切换路由,不重新刷新页面,浏览器也会记录,左右箭头可以进行前进和后退操作。
会创建hashHistory对象,在访问不同的路由的时候,会发⽣两件事:
HashHistory.push()将新的路由添加到浏览器访问的历史的栈顶
HasHistory.replace()替换到当前栈
第二种 history 模式
url 不带参数,http://xx.xxx.x.xxx:8080/index.html
切换以后会刷新页面,http://xx.xxx.x.xxx:8080/home.html,浏览器也可以进行前进后退操作
可以使用history的方法进行前进后退
history.forward():在历史记录中前进一步
history.back():在历史记录中后退一步
history.go(n):在历史记录中跳转n步骤,n=0为刷新本页,n=-1为后退一页。
H5新增
history.pushState(data[,title][,url]):向历史记录中追加一条记录
history.replaceState(data[,title][,url]):替换当前页在历史记录中的信息
history.state:是一个属性,可以得到当前页的state信息。
window.onpopstate:是一个事件,在点击浏览器后退按钮或js调用forward()、back()、go()时触发。监听函数中可传入一个event对象,event.state即为通过pushState()或replaceState()方法传入的data参数