本文是因为在项目中因为多个页面链接同一个页面导致的路由跳转问题,学习了一波history
解决办法: 利用history.back() 返回上一个页面,也就是将指针指向history堆栈的上一个栈顶
history的方法
-
history.back(): 返回上一个页面,但是此方法是从浏览器缓存中去读取页面,因此返回的页面不会再次的去请求接口。
-
history.forword(): 移动到下一个页面,相当于浏览器的前进按钮
-
history.go(index): 接受参数,正数为前进index步,负数为后退index步
前进后退的依据为:history堆栈。 堆栈中记载了所有你访问过的页面的记录
history的属性常用有
- length: 表示会话历史中元素的数目,包括当前加载的页
- statue: 表示历史堆栈顶部的状态的值
history方法
- history.pushState(data, title [, url]): 往历史记录堆栈顶部添加一条记录。data会在onpopstate事件触发时作为参数传递过去;title为页面标题,暂时不可用;url为页面地址,可选,缺省为当前页地址。
- history.replaceState(data, title [, url]): 更新历史栈上最新的入口。参数同上
popstate事件
1.当活动历史记录条目更改时,将触发popstate事件。如果被激活的历史记录条目是通过对history.pushState()的调用创建的,或者受到对history.replaceState()的调用的影响,popstate事件的state属性包含历史条目的状态对象的副本。